穿越是时空之门(java)
emm,之前做过一道类似的题目,但是这次又忘了
一开始的错误代码
package Lanqiao;
import javax.swing.plaf.synth.SynthTextAreaUI;
import java.math.BigInteger;
/**
* @author zb
* date2025/3/19 21:33
*/
public class L19701 {
public static void main(String[] args) {
int count =0 ;
for (int i = 4; i <=2024 ; i++) {
String er =Integer.toString(i,2);
String si =Integer.toString(i,4);
int eri = Integer.parseInt(er);
int sii = Integer.parseInt(si);
if(he(eri)==he(sii)){
count++;
}
}
System.out.println(count);
}
static int he(int num){
int res = 0 ;
while (num>0){
res += num%10 ;
num/=10;
}
return res;
}
}
因为他要算的是转换成而二进制和四进制之后的数的每个位置的值的和,
package Lanqiao;
import javax.swing.plaf.synth.SynthTextAreaUI;
import java.math.BigInteger;
/**
* @author zb
* date2025/3/19 21:33
*/
public class L19701 {
public static void main(String[] args) {
int count =0 ;
for (int i = 1; i <=2024 ; i++) {
int er = jinzhi(i,2);
int si = jinzhi(i,4);
if(er==si){
// System.out.println(i);
count++;
}
}
System.out.println(count);
}
static int jinzhi(int num,int jin){
int sum =0;
while (num>0){
sum = sum + num%jin ;
num = num /jin ;
}
return sum;
}
}