阶乘的和
import java.math.BigInteger;
import java.util.Scanner;
public class 阶乘的和 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
BigInteger bigInteger1=new BigInteger(""+0);
//这里i循环到几十后后面的9位数就不会再变了
for (int i = 1; i <=60 ; i++) {
bigInteger1=bigInteger1.add(fn(i)) ;
}
System.out.println(bigInteger1);
}
public static BigInteger fn(int i){
BigInteger bigInteger2=new BigInteger(""+1);
for (int j = 1; j <=i ; j++) {
bigInteger2=bigInteger2.multiply(new BigInteger(""+j));
}
return bigInteger2;
}
}
最后的结果为420940313
幸运的数
import java.util.Scanner;
public class 进制转换 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int k=0;
for (int i = 1; ; i++) {
//转二进制
String string2 = Integer.toString(i, 2);
//System.out.println(string2);
int sum1 = 0;
for (int j = 0; j < string2.length(); j++) {
sum1 = sum1 + (string2.charAt(j) - '0');
}
//转八进制
String string8 = Integer.toString(i, 8);
//System.out.println(string8);
int sum2 = 0;
for (int j = 0; j < string8.length(); j++) {
sum2 = sum2 + (string8.charAt(j) - '0');
}
//转十进制
String string10 = Integer.toString(i, 10);
//System.out.println(string10);
int sum3 = 0;
for (int j = 0; j < string10.length(); j++) {
sum3 = sum3 + (string10.charAt(j) - '0');
}
//转十六进制
String string16 = Integer.toString(i, 16);
//System.out.println(string16);
int sum4 = 0;
for (int j = 0; j < string16.length(); j++) {
if (string16.charAt(j) == 'a')
sum4 = sum4 + 10;
else if (string16.charAt(j) == 'b')
sum4 = sum4 + 11;
else if (string16.charAt(j) == 'c')
sum4 = sum4 + 12;
else if (string16.charAt(j) == 'd')
sum4 = sum4 + 13;
else if (string16.charAt(j) == 'e')
sum4 = sum4 + 14;
else if (string16.charAt(j) == 'f')
sum4 = sum4 + 15;
else
sum4 = sum4 + (string16.charAt(j) - '0');
}
if(i%sum1==0&&i%sum2==0&&i%sum3==0&&i%sum4==0){
k++;
System.out.println(i);
}
if(k==2023){
System.out.println(i);
break;
}
}
}
}
最后结果为215040
就会这两个题但是第二题把api忘记了所以没有写出来,要不然说不定还能稳个省三,这下啥都没了。