java - 为什么divide() 函数在Java BigInteger 中不起作用?

标签 java biginteger

我正在尝试将变量“c”除以 2(存储在“d”中)。由于某种原因,这并没有发生。我现在正在传递 10 和 2 作为输入。

import java.util.*;
import java.lang.*;
import java.io.*;
import java.math.BigInteger;

class Ideone
{
    public static void main (String[] args) throws java.lang.Exception
    {
    Scanner sc = new Scanner(System.in); 
    BigInteger a = new BigInteger(sc.next()); 
    BigInteger b = sc.nextBigInteger();
    BigInteger d = new BigInteger("2"); 
    System.out.println(d);

    BigInteger c = a.subtract(b); 
    c.divide(d);
    System.out.println(c);
    a.subtract(c); 

    System.out.println(a); 
    System.out.println(c);
    }
} 

如有任何帮助,我们将不胜感激。提前致谢!

最佳答案

您忘记了 BigInteger 是不可变的。这意味着 a.divide(b) 不会更改 a返回结果计算

您需要a = a.divide(b)或类似的东西。

    BigInteger a = new BigInteger(sc.next());
    BigInteger b = sc.nextBigInteger();
    BigInteger d = new BigInteger("2");
    System.out.println(d);

    BigInteger c = a.subtract(b);
    // HERE!
    c = c.divide(d);
    System.out.println(c);
    // HERE!
    a = a.subtract(c);

    System.out.println(a);
    System.out.println(c);

关于java - 为什么divide() 函数在Java BigInteger 中不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37653196/

相关文章:

c - 大整数运算

java - 大输入的数字格式异常

c# - 减少 C# 中的 BigInteger 值

java - FreeTTS 没有音频 linux ubuntu - 没有错误

java - Android初学者图形布局不起作用

java - 读取不同行格式的txt并创建对象?

java - 递增 udp 套接字序列号

java - 12.10 无法安装 eclipse

java - BigInteger 加法总是 0

java - BigInteger:以可扩展的方式计算小数位数