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

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

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);
    }
相关文章
|
7月前
|
算法 C++ 内存技术
【软件设计师备考 专题 】数据的多面性:从数值到非数值的表示
【软件设计师备考 专题 】数据的多面性:从数值到非数值的表示
90 1
AcWing 3498. 日期差值(每日一题)
AcWing 3498. 日期差值(每日一题)
|
4月前
|
人工智能 算法
第一周算法设计与分析:C : 200和整数对之间的情缘
这篇文章介绍了解决算法问题"200和整数对之间的情缘"的方法,通过统计数组中每个数模200的余数,并计算每个同余类中数的组合数来找出所有满足条件的整数对(i, j),使得\( A_i - A_j \)是200的整数倍。
|
7月前
|
算法
求连续整数的阶层的和,时间复杂程度为O(n)的解法
求连续整数的阶层的和,时间复杂程度为O(n)的解法
|
存储 算法
算法小白的心得笔记:比较小数点后五位,而不会受到浮点数精度问题的影响。
std::cerr << "\n __" << inum << "__ 计算错误 " << ratio << " 应该是 " << beta3[inum - 1] << std::endl; return 1;
45 0
OJ题库:计算日期到天数转换、打印从1到最大的n位数 、尼科彻斯定理
OJ题库:计算日期到天数转换、打印从1到最大的n位数 、尼科彻斯定理
63 0
|
算法
基础算法练习200题03、电视剧每集时间(四舍五入)
基础算法练习200题03、电视剧每集时间(四舍五入)
90 0
基础算法练习200题03、电视剧每集时间(四舍五入)
|
机器学习/深度学习 算法 安全
【Python 百练成钢】时间调整、二进制数、回文素数、字母距离、CTF、Huffuman树、抽奖、前后缀最值、纯质数求解、花园灌溉
【Python 百练成钢】时间调整、二进制数、回文素数、字母距离、CTF、Huffuman树、抽奖、前后缀最值、纯质数求解、花园灌溉
【Python 百练成钢】时间调整、二进制数、回文素数、字母距离、CTF、Huffuman树、抽奖、前后缀最值、纯质数求解、花园灌溉
|
存储 C++
蓝桥杯练习题八 - k倍区间(c++)(二)
蓝桥杯练习题八 - k倍区间(c++)
133 0
|
人工智能 C++ Python
蓝桥杯练习题八 - k倍区间(c++)(一)
蓝桥杯练习题八 - k倍区间(c++)
93 0