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;
}
}
}
本文含有隐藏内容,请 开通VIP 后查看