public class Main {public static void main(String[] args) {
// boolean a = zhengchu(2,10);
// System.out.print(a);
// boolean a = btrue(126);
// System.out.print(a);int decimalNumber = 10; // 十进制数String binaryString = Integer.toString(decimalNumber, 8); // 转换为二进制字符串int num = Integer.parseInt(binaryString);System.out.println(num);
进制转换boolean flag = true;int n = 0;int i = 1;while(true) {if(btrue(i)){n++;if(n == 2023) {System.out.println(i);break;}}i++;}}public static boolean btrue(int i){int n2,n8,n10,n16;n2=n8=n10=n16=0;int n=i;while(n!=0) {n2 +=(n%2);n = n/2;}n = i;while(n!=0) {n8 +=(n%8);n = n/8;}n = i;while(n!=0) {n10 +=(n%10);n = n/10;}n = i;while(n!=0) {n16 +=(n%16);n = n/16;}//String N16 = Integer.toString(i, 16);//int n16 = Integer.parseInt(N16);//错误点7e这个字符串不能转回十进制;在字符串转回整数类型时高进制转低进制是会失败的if(((i%n2)==0) && ((i%n8)==0) && ((i%n10)==0) && ((i%n16)==0)) {return true;}else {return false;} }public static boolean zhengchu(int n , int i) {int sum=0;while(true) {if(n != 0) {sum += n%10;n = n/10;}else {break;}}if(i%sum == 0) {return true;}else {return false;}}
}
这个代码没问题,但下面这个代码一直会报错。
Exception in thread "main" java.lang.NumberFormatException: For input string: "10000000000"
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:67)
at java.base/java.lang.Integer.parseInt(Integer.java:665)
at java.base/java.lang.Integer.parseInt(Integer.java:781)
at lanqiao/lanqiao2023_2.Main.btrue(Main.java:33)
at lanqiao/lanqiao2023_2.Main.main(Main.java:19)
package lanqiao2023_2;public class Main {public static void main(String[] args) {
// boolean a = zhengchu(2,10);
// System.out.print(a);
// boolean a = btrue(126);
// System.out.print(a);int decimalNumber = 10; // 十进制数String binaryString = Integer.toString(decimalNumber, 8); // 转换为二进制字符串int num = Integer.parseInt(binaryString);System.out.println(num);
进制转换boolean flag = true;int n = 0;int i = 1;while(flag) {if(btrue(i)==true) {n++;if(n == 2023) {System.out.println(i);break;}}i++;}}public static boolean btrue(int i){int n1=i;String N2 = Integer.toString(n1, 2);int n2 = Integer.parseInt(N2);int n3 = i;String N8 = Integer.toString(n3, 8);int n8 = Integer.parseInt(N8);int n16 =0;int n = i;while(n!=0) {n16 +=n%16;n = n/16;}//String N16 = Integer.toString(i, 16);//int n16 = Integer.parseInt(N16);//错误点7e这个字符串不能转回十进制;在字符串转回整数类型时高进制转低进制是会失败的if(zhengchu(n2,i) && zhengchu(n8,i) && zhengchu(i,i) && (i%n16==0)) {return true;}else {return false;}}public static boolean zhengchu(int n , int i) {int sum=0;while(true) {if(n != 0) {sum += n%10;n = n/10;}else {break;}}if(i%sum == 0) {return true;}else {return false;}}
}