首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >java中数字2^1000的位数和

java中数字2^1000的位数和
EN

Stack Overflow用户
提问于 2019-11-07 17:29:24
回答 1查看 251关注 0票数 1
代码语言:javascript
复制
import java.math.*;

public class PowerDigitSum {
    public static void main(String[] args) {
        double[] digits ;
        digits = new double[302];
        double i = Math.pow(2, 1000);
        double c = 301;
        double c1 = 0;
        double d = 0;
        while(c>=0) {
            c1 = Math.pow(10, c);
            d = Math.floor(i/c1);
            i = i - d*c1;
            digits[(int)c] = (int)d;
            c = c-1;
        }
        double sum = 0;
        c = 0;
        while (c<302) {
            sum = sum+digits[(int)c];
            c= c+1;
        }
        System.out.println(sum);
    }
}

输出是1281,但根据projecteuler的说法,这是不正确的。我做错了什么?

EN

回答 1

Stack Overflow用户

发布于 2019-11-07 17:37:30

由于双精度值的性质有限,您无法对其进行正确的数学运算。

您可能可以使用BigDecimal修复代码,但使用BigInteger要容易得多。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58745653

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档