A、平方末尾
能够表示为某个整数的平方的数字称为“平方数”
比如,25,64
虽然无法立即说出某个数是平方数,但经常可以断定某个数不是平方数。
因为平方数的末位只可能是:[0, 1, 4, 5, 6, 9] 这6个数字中的某个。
所以,4325435332必然不是平方数。
如果给你一个2位或2位以上的数字,你能根据末位的两位来断定它不是平方数吗?
请计算一下,一个2位以上的平方数的最后两位有多少种可能性?
注意:需要提交的是一个整数,表示2位以上的平方数最后两位的不同情况数。
不要填写任何多余内容(比如,说明解释文字等)
package action; import java.util.HashSet; public class demo { public static HashSet<String> set = new HashSet<String>(); public static void main(String[] args) { for (long i = 10; i <= 1000000; i++) { String a = "" + (i * i / 10 % 10) * 10 + "" + i * i % 10; set.add(a); } System.out.println(set.size()); } }
B、七星填数
如图【图1.png】所示。
在七角星的14个节点上填入1~14 的数字,不重复,不遗漏。
要求每条直线上的四个数字之和必须相等。
图中已经给出了3个数字。
请计算其它位置要填充的数字,答案唯一。
填好后,请提交绿色节点的4个数字(从左到右,用空格分开)
比如:12 5 4 8
当然,这不是正确的答案。
注意:只提交4个用空格分开的数字,不要填写任何多余的内容。
package action; import java.util.HashSet; public class demo { public static int sum = 0; public static int four = 0; public static void swap(int[] A, int i, int j) { int temp = A[i]; A[i] = A[j]; A[j] = temp; } public static void dfs(int[] A, int step) { if (step == A.length) { int[] count = new int[7]; count[0] = A[0] + A[1] + A[2] + A[3]; count[1] = A[0] + A[4] + A[6] + A[9]; count[2] = A[1] + A[4] + 6 + 14; count[3] = A[2] + A[5] + 6 + 11; count[4] = A[6] + A[8] + A[10] + 14; count[5] = A[7] + A[8] + A[9] + 11; count[6] = A[3] + A[5] + A[7] + A[10]; HashSet<Integer> set = new HashSet<Integer>(); for (int i = 0; i < 7; i++) set.add(count[i]); if (set.size() == 1) { for (int i = 0; i < A.length; i++) { System.out.print(A[i] + " "); four++; if(four==4)break; } System.out.println(); } sum++; return; } else { for (int i = step; i < A.length; i++) { swap(A, i, step); dfs(A, step + 1); swap(A, i, step); } } } public static void main(String[] args) { int[] A = { 1, 2, 3, 4, 5, 7, 8, 9, 10, 12, 13 }; dfs(A, 0); } }
C、打印数字
小明写了一个有趣的程序,给定一串数字。
它可以输出这串数字拼出放大的自己的样子。
比如“2016”会输出为:
22222 00000 1 6666
2 2 0 0 1 1 6
2 0 0 1 666666
2 0 0 1 6 6
2 0 0 1 6 6
2 2 0 0 1 6 6
2222222 00000 1111 66666
请仔细分析代码,填写划线部分缺少的内容。
public class Main { static void f(int n) { String[][] di = {{" 00000 ", "0 0", "0 0", "0 0", "0 0", "0 0", " 00000 "}, {" 1 ", " 1 1 ", " 1 ", " 1 ", " 1 ", " 1 ", " 1111"}, {" 22222 ", "2 2", " 2", " 2 ", " 2 ", " 2 2", "2222222"}, {" 33333 ", "3 3", " 3", " 3333 ", " 3", "3 3", " 33333 "}, {" 44 ", " 4 4 ", " 4 4 ", "4 4 ", "4 4 ", "4444444", " 4 "}, {" 55555 ", " 5 ", "555555 ", " 5", " 5", "5 5", " 55555 "}, {" 6666 ", "6 ", "666666 ", "6 6", "6 6", "6 6", " 66666 "}, {"7777777", "7 7 ", " 7 ", " 7 ", " 7 ", " 7 ", " 7 "}, {" 88888 ", "8 8", "8 8", " 88888 ", "8 8", "8 8", " 88888 "}, {" 99999 ", "9 9", "9 9", " 999999", " 9", "9 9", " 99999 "}}; char[] cc = (""+n).toCharArray(); for(int i=0; i<di[0].length; i++){ for(int j=0; j<cc.length; j++){ System.out.print( ____________________ + " "); //填空位置 } System.out.println(); } } public static void main(String[] args) { f(2016); } }
注意:只提交划线部分缺少的代码,不要添加任何题面已有代码或符号。
也不要提交任何说明解释文字等。
填空内容:【di[cc[j]-'0'][i]】
编码:
package action; public class demo { static void f(int n) { String[][] di = { { " 00000 ", "0 0", "0 0", "0 0", "0 0", "0 0", " 00000 " }, { " 1 ", " 1 1 ", " 1 ", " 1 ", " 1 ", " 1 ", " 1111" }, { " 22222 ", "2 2", " 2", " 2 ", " 2 ", " 2 2", "2222222" }, { " 33333 ", "3 3", " 3", " 3333 ", " 3", "3 3", " 33333 " }, { " 44 ", " 4 4 ", " 4 4 ", "4 4 ", "4 4 ", "4444444", " 4 " }, { " 55555 ", " 5 ", "555555 ", " 5", " 5", "5 5", " 55555 " }, { " 6666 ", "6 ", "666666 ", "6 6", "6 6", "6 6", " 66666 " }, { "7777777", "7 7 ", " 7 ", " 7 ", " 7 ", " 7 ", " 7 " }, { " 88888 ", "8 8", "8 8", " 88888 ", "8 8", "8 8", " 88888 " }, { " 99999 ", "9 9", "9 9", " 999999", " 9", "9 9", " 99999 " } }; char[] cc = ("" + n).toCharArray(); for (int i = 0; i < di[0].length; i++) { for (int j = 0; j < cc.length; j++) { System.out.print(di[cc[j] - '0'][i] + " "); // 填空位置 } System.out.println(); } } public static void main(String[] args) { f(2016); } }