第十四届蓝桥杯JavaB组

阶乘的和

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忘记了所以没有写出来,要不然说不定还能稳个省三,这下啥都没了。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值