题目及解析如下:
题目大致介绍:
第一题到第三题以及第六题、第七题是结果填空,方法不限只要得到最后结果就行
第四题和第五题是代码填空题,主要考察算法基本功和编程基本功
第八题到第十题是编程题,要求编程解决问题
第一题 三角形面积
送分题,每个人都应该会的
1 // 三角形面积 2 // answer: 28 3 4 public class t1 { 5 6 public static void main(String[] args) { 7 System.out.println(64 - 8 - 3 * 4 - 4 * 4); 8 } 9 10 }
第二题 立方变自身
1 // 立方变自身 2 // 观察下面的现象,某个数字的立方,按位累加仍然等于自身。 3 // 1^3 = 1 4 // 8^3 = 512 5+1+2=8 5 // 17^3 = 4913 4+9+1+3=17 6 // ... 7 // 请你计算包括1,8,17在内,符合这个性质的正整数一共有多少个? 8 9 // answer: 6 10 11 public class t2 { 12 13 public static void main(String[] args) { 14 int res = 0; 15 for(int i = 1; i<99; i++) { 16 int s = i * i * i; 17 int sum = calSum(s); 18 if(sum == i) { 19 res++; 20 System.out.println(res + " " + i); 21 } 22 } 23 24 System.out.println(res); 25 } 26 27 private static int calSum(int s) { 28 String str = String.valueOf(s); 29 int sum = 0; 30 for(int i = 0; i<str.length(); i++) { 31 sum += str.charAt(i) - '0'; 32 } 33 34 35 return sum; 36 } 37 38 }
这个题也算是送分题
第三题 三羊献瑞
暴力求解,注意看清楚,别看错了!然后可以推导出某些位置的数,比如下面的三就是1,祥就是9,羊就是0
1 // 三羊献瑞 2 3 // 观察下面的加法算式: 4 // 5 // 6 // 祥 瑞 生 辉 7 // + 三 羊 献 瑞 8 //------------------- 9 // 三 羊 生 瑞 气 10 // 11 // 12 // 其中,相同的汉字代表相同的数字,不同的汉字代表不同的数字。 13 // 14 // 请你填写“三羊献瑞”所代表的4位数字(答案唯一),不要填写任何多余内容 15 16 // answer: 1085 17 18 public class t3 { 19 20 public static void main(String[] args) { 21 22 for (int a = 1; a <= 9; a++) { 23 for (int b = 0; b <= 9; b++) { 24 if(b!=a) 25 for (int c = 0; c <= 9; c++) { 26 if(c!=a&&c!=b) 27 for (int d = 0; d <= 9; d++) { 28 if(d!=c&&d!=b&&d!=a) 29 for (int i = 1; i <= 9; i++) { 30 if(i!=d&&i!=c&&i!=b&&i!=a) 31 for (int j = 0; j <= 9; j++) { 32 if(j!=i&&j!=d&&j!=c&&j!=b&&j!=a) 33 for (int k = 0; k <= 9; k++) { 34 int num1 = a * 1000 + b * 100 + c * 10 + d; 35 int num2 = i * 1000 + j * 100 + k * 10 + b; 36 int res = num1 + num2; 37 if(k!=j&&k!=i&&k!=d&&k!=c&&k!=b&&k!=a) 38 for(int q=0; q<=9; q++) { 39 int aim = i * 10000 + j * 1000 + c * 100 + b * 10 + q; 40 if(q!=k&&q!=j&&q!=i&&q!=d&&q!=c&&q!=b&&q!=a) 41 if(res == aim) { 42 System.out.println(num1 + " + " + num2 + " = " + res + " aim: " + aim); 43 } 44 } 45 } 46 } 47 } 48 } 49 } 50 } 51 } 52 53 } 54 55 }
第四题 循环节长度
1 // 循环节长度 2 3 // 两个整数做除法,有时会产生循环小数,其循环部分称为:循环节。 4 // 比如,11/13=6=>0.846153846153..... 其循环节为[846153] 共有6位。 5 // 下面的方法,可以求出循环节的长度。 6 // 7 // 8 // 请仔细阅读代码,并填写划线部分缺少的代码。 9 10 public class t4 { 11 12 public static int f(int n, int m) { 13 n = n % m; 14 Vector v = new Vector(); 15 16 for (;;) { 17 v.add(n); 18 n *= 10; 19 n = n % m; 20 if (n == 0) 21 return 0; 22 if (v.indexOf(n) >= 0) { 23 return v.size() - v.indexOf(n); // 填空 24 } 25 } 26 } 27 28 public static void main(String[] args) { 29 30 for (int i = 1; i <= 17; i++) { 31 for (int j = 1; j <= 17; j++) { 32 if (i % j != 0) { 33 System.out.println(i + " " + j + " " + (double)i/j + " " + f(i, j)); 34 } 35 } 36 } 37 38 39 } 40 41 }
第五题 九数组分数
第六题 加法变乘法
第七题 牌型种数
第八题 饮料换购
第九题 垒骰子
第十题 生命之树