本周练习题目(高精度,大数值)

简介: 本周练习题目(高精度,大数值)

BigIntger

是什么:

对于超出了所有基本数据类型范围的数字,字符串,在这种情况下,也就是要求我们对于数据实现高精度,从而保证数据能够正常的进行一个相应的输出

这时候就需要使用到  BigIntger来扩大对于整数数据的精准度,无论多大,都能够保证在范围当中

                 (BigInteger类实现了任意精度的整数运算,BigDecimal实现了任意精度的浮点数运算。)

怎么用:

   静态方法:

       BigIntger x=new  BigInter("10000000000");

           System.out.println(x);

               //最后直接输出的是x的大数值:   10000000000

               tips:在静态的方法当中,必须要对于需要的数据添加一个双引号,因为其数值过大,可以先简单的将其理解为字符串之间的运算

         

     

// 加法
BigInteger sum = a.add(b);
System.out.println(sum); // 输出:11111111100
 
// 减法
BigInteger difference = a.subtract(b);
System.out.println(difference); // 输出:-8641975320
 
// 乘法
BigInteger product = a.multiply(b);
System.out.println(product); // 输出:12193263111263526900
 
// 除法
BigInteger quotient = a.divide(b);
System.out.println(quotient); // 输出:0
 
// 求余
BigInteger remainder = a.remainder(b);
System.out.println(remainder); // 输出:1234567890
 
// 比较大小
int compareResult = a.compareTo(b);
System.out.println(compareResult); // 输出:-1(a < b)

题型练习

//练习:使用高精度计算各个阶乘之和

Scanner in=new Scanner(System.in);
        //使用大数据的方法,实现阶乘的运算
        int cent=in.nextInt();
        //开始进行数值的相加,从而实现题目的要求
        int temp=1;
 
        //设定最开始的SUM和是一个0
        BigInteger add=new BigInteger("0");
        BigInteger a=new BigInteger("1");
        for (int i1 = 0; i1 < cent; i1++) {
 
            for (int i = 1; i <= temp; i++) {
                //通过使用强制转化,将其中的基本数据类型转化成为一个大数据类型
                BigInteger I = BigInteger.valueOf(i);
                a = a.multiply(I);
            }
            //添加
            add=add.add(a);
            temp++;
        //在这里添加一个需要再进行转换一个大数值类型
            int y=1;
            //这两步是为了将其中的a数值进行还原,重新变成原本的"1"
            BigInteger bigInteger = BigInteger.valueOf(y);
            a=a.subtract(a).add(bigInteger);
        }
        System.out.println(add);
    }
相关文章
|
6月前
|
算法 C++ 内存技术
【软件设计师备考 专题 】数据的多面性:从数值到非数值的表示
【软件设计师备考 专题 】数据的多面性:从数值到非数值的表示
83 1
|
6月前
|
算法 测试技术
枚举(蓝桥练习)(反倍数、特别数的和、找到最多的数、小蓝的漆房、小蓝和小桥的挑战)
枚举(蓝桥练习)(反倍数、特别数的和、找到最多的数、小蓝的漆房、小蓝和小桥的挑战)
|
6月前
|
存储 算法 大数据
数字太大放不下,高精度来补,如何放下超大数字,以及进制转换,高精度真的超好玩。 洛谷1009,1015
数字太大放不下,高精度来补,如何放下超大数字,以及进制转换,高精度真的超好玩。 洛谷1009,1015
|
3月前
|
人工智能 算法
第一周算法设计与分析:C : 200和整数对之间的情缘
这篇文章介绍了解决算法问题"200和整数对之间的情缘"的方法,通过统计数组中每个数模200的余数,并计算每个同余类中数的组合数来找出所有满足条件的整数对(i, j),使得\( A_i - A_j \)是200的整数倍。
|
6月前
|
索引
每日一题吼吼吼(打印从1到最大n位数,计算是第几天)
每日一题吼吼吼(打印从1到最大n位数,计算是第几天)
36 0
|
存储 算法
算法小白的心得笔记:比较小数点后五位,而不会受到浮点数精度问题的影响。
std::cerr << "\n __" << inum << "__ 计算错误 " << ratio << " 应该是 " << beta3[inum - 1] << std::endl; return 1;
43 0
OJ题库:计算日期到天数转换、打印从1到最大的n位数 、尼科彻斯定理
OJ题库:计算日期到天数转换、打印从1到最大的n位数 、尼科彻斯定理
61 0
|
算法
基础算法练习200题03、电视剧每集时间(四舍五入)
基础算法练习200题03、电视剧每集时间(四舍五入)
89 0
基础算法练习200题03、电视剧每集时间(四舍五入)
数学题-零点式转换为一般式Know your Aliens
题目描述 Our world has been invaded by shapeshifting aliens that kidnap people and steal their identities.You are an inspector from a task force dedicated to detect and capture them. As such, you were given special tools to detect aliens and differentiate them from real humans.
109 0
数学题-零点式转换为一般式Know your Aliens