Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/154.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用java或c计算3^1002的数字之和?_Java_C++_C - Fatal编程技术网

如何使用java或c计算3^1002的数字之和?

如何使用java或c计算3^1002的数字之和?,java,c++,c,Java,C++,C,由于java或c中的数据类型无法处理如此大的数字。我可以使用什么逻辑来查找数字的总和?尝试以下方法: BigInteger big = BigInteger.valueOf(3).pow(1002) 不可变的任意精度整数。所有操作的行为都像 大整数用二的补码表示法(类似于Java的 基元整数类型)。BigInteger提供了所有 Java的基本整数运算符,以及 java.lang.Math。此外,BigInteger还为 模运算、GCD计算、素性测试、素数 生成、位操作和其他一些杂项 行动

由于java或c中的数据类型无法处理如此大的数字。我可以使用什么逻辑来查找数字的总和?

尝试以下方法:

BigInteger big = BigInteger.valueOf(3).pow(1002)

不可变的任意精度整数。所有操作的行为都像 大整数用二的补码表示法(类似于Java的 基元整数类型)。BigInteger提供了所有 Java的基本整数运算符,以及 java.lang.Math。此外,BigInteger还为 模运算、GCD计算、素性测试、素数 生成、位操作和其他一些杂项 行动

您想在3^1002中添加数字总和。请尝试以下操作:

public static void main(String[] args) throws ParseException {
    BigInteger big = BigInteger.valueOf(3).pow(1002);
    String s = big.toString();
    System.out.println("3^1002 :-" + big);
    int sum = 0;
    for (int i = 0; i < s.length(); i++) {
        sum = sum + Integer.parseInt(String.valueOf(s.charAt(i)));

    }
    System.out.println("Sum of digits = "+sum);
}

使用
BigInteger
计算对于基元来说太大的数字-它包含解决问题所需的基本数学函数。

Java:

int baseNum = 3;
int power = 1002;
BigInteger bigInt = BigInteger.valueOf(baseNum).pow(power + 1).divide(BigInteger.valueOf(baseNum - 1));
System.out.println(bigInt);

对于C或C++的任何一个BigNem库,使用<代码> java > Maig.BigTung</C> >。在C++中使用一个库,如GMP或MPIR。都是开源的。当你说数字之和时,你的意思是数字之和512=5+1+2,你的3^1002“数字”根本不是一个数字。它比其他任何东西都更像一个字符串,并且可以这样处理,轮流使用BigInteger的每一部分都不太本地化。这是一个开始,但它不能得到数字的总和。对于这个精确的问题,有一个公式,不需要手工操作。是(1-3^(N+1))/(1-3)@TedHopp我添加了数字之和的代码。@vlad Ardelen我不明白你的公式是什么?@vlad Ardelen-那是从1到3^N的数字之和,不是3^N的数字之和。Achintya-现在你得到我的+1了。
int baseNum = 3;
int power = 1002;
BigInteger bigInt = BigInteger.valueOf(baseNum).pow(power + 1).divide(BigInteger.valueOf(baseNum - 1));
System.out.println(bigInt);