java基础-BigInteger的使用

目录

1.BigInteger构造器

2.BigInteger使用举例


1.BigInteger构造器

这里面最好用的应该是BigInger(String val)这个构造器吧,可以直接将十进制的字符串格式变成大整数,举例: BigInteger a=new BigInteger(“2222222222222222”);

既然不是基本数据类型,所以大数的加减乘除也不能使用+、-、*、/这些运算符号,Java也没有对这些运算符号进行重定义,取而代之的是用一些方法来代替,比如add()、subtract()、mutiply()、divide()这四种方法,它们的使用举例如下:

2.BigInteger使用举例

那么来总结一下BigInteger为我们提供的常用的方法:

BigInteger abs()  返回大整数的绝对值
BigInteger add(BigInteger val) 返回两个大整数的和
BigInteger and(BigInteger val)  返回两个大整数的按位与的结果
BigInteger andNot(BigInteger val) 返回两个大整数与非的结果
BigInteger divide(BigInteger val)  返回两个大整数的商
double doubleValue()   返回大整数的double类型的值
float floatValue()   返回大整数的float类型的值
BigInteger gcd(BigInteger val)  返回大整数的最大公约数
int intValue() 返回大整数的整型值
long longValue() 返回大整数的long型值
BigInteger max(BigInteger val) 返回两个大整数的最大者
BigInteger min(BigInteger val) 返回两个大整数的最小者
BigInteger mod(BigInteger val) 用当前大整数对val求模
BigInteger multiply(BigInteger val) 返回两个大整数的积
BigInteger negate() 返回当前大整数的相反数
BigInteger not() 返回当前大整数的非
BigInteger or(BigInteger val) 返回两个大整数的按位或
BigInteger pow(int exponent) 返回当前大整数的exponent次方
BigInteger remainder(BigInteger val) 返回当前大整数除以val的余数
BigInteger leftShift(int n) 将当前大整数左移n位后返回
BigInteger rightShift(int n) 将当前大整数右移n位后返回
BigInteger subtract(BigInteger val)返回两个大整数相减的结果
byte[] toByteArray(BigInteger val)将大整数转换成二进制反码保存在byte数组中
String toString() 将当前大整数转换成十进制的字符串形式
BigInteger xor(BigInteger val) 返回两个大整数的异或
  • 22
    点赞
  • 72
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
### 回答1: 使用JavaBigInteger类求阶乘的方法如下: 1. 首先,你需要导入 java.math.BigInteger 包。 2. 然后,你可以使用如下代码来求一个数的阶乘: ``` BigInteger result = BigInteger.ONE; for (int i = 1; i <= n; i++) { result = result.multiply(BigInteger.valueOf(i)); } ``` 在这段代码中,n 是要求阶乘的数,result 变量用来保存结果。首先,我们将 result 初始化为 1,然后使用 for 循环将 1 到 n 的乘积累加到 result 中。 注意,BigInteger 类的乘法操作是使用 multiply() 方法实现的,而不是用 * 运算符。 例如,你可以使用如下代码来求 5 的阶乘: ``` BigInteger result = BigInteger.ONE; for (int i = 1; i <= 5; i++) { result = result.multiply(BigInteger.valueOf(i)); } System.out.println(result); // 输出 120 ``` 希望这能帮到你! ### 回答2: 阶乘是一个正整数连乘积的运算,即n的阶乘(n!)等于1乘2乘3乘...乘n。 在Java中,使用BigInteger类可以处理大整数运算,可以用它来求解阶乘。 首先,导入java.math包中的BigInteger类。然后,我们可以定义一个方法来计算n的阶乘。方法的参数是一个正整数n,返回类型是BigInteger。方法中,我们定义一个BigInteger类型的变量result,初始化为1。 接下来,使用一个循环从1到n,依次将每个数字与result进行连乘运算,最后将result返回。 具体实现代码如下: ```java import java.math.BigInteger; public class Factorial { public static BigInteger factorial(int n) { BigInteger result = BigInteger.ONE; // 初始化为1 for (int i = 1; i <= n; i++) { result = result.multiply(BigInteger.valueOf(i)); // 连乘运算 } return result; } public static void main(String[] args) { int n = 10; BigInteger result = factorial(n); System.out.println(n + "! = " + result); } } ``` 在以上代码中,我们求解了10的阶乘,并将结果打印输出。运行程序,输出结果为: ``` 10! = 3628800 ``` BigInteger类可以处理大整数运算,因此可以求解非常大的阶乘,远超过普通整型或长整型的范围限制。 ### 回答3: 要使用JavaBigInteger类求阶乘,首先需要导入java.math.BigInteger包。BigInteger类是一个不可变的大整数类,可以处理超过long类型所能表示的范围的整数。 然后,我们需要创建一个BigInteger类型的变量来存储阶乘的结果。由于阶乘的结果可能非常大,我们可以先将结果初始化为1,即BigInteger result = BigInteger.valueOf(1)。 接下来,使用一个循环来计算阶乘,从1循环到所需的阶乘数n。在每次循环中,将当前的BigInteger变量result与当前的循环变量相乘,并将结果赋值给result,即result = result.multiply(BigInteger.valueOf(i))。 最后,循环结束后,result的值即为所需的阶乘结果。 以下是一个使用JavaBigInteger类求阶乘的示例代码: import java.math.BigInteger; public class Factorial { public static void main(String[] args) { int n = 10; // 求10的阶乘 BigInteger result = BigInteger.valueOf(1); for (int i = 1; i <= n; i++) { result = result.multiply(BigInteger.valueOf(i)); } System.out.println("10的阶乘是:" + result); } } 运行以上程序,输出结果为10的阶乘值,即3628800。 使用JavaBigInteger类可以轻松计算超大范围内的阶乘,无需担心整数溢出的问题。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值