2016-10-04 29 views
0

我正在写这个,但没有得到输出。
我是新来解决JavaScript中的项目欧拉问题
但获取错误请帮助我。JavaScript中数字2 pow 1000的数字总和为

function pow(n, p) {  
    var r = (n, 0, 0); 
    var bn = (n, 0, 0);  
    for (var i = 1; i < p; i++) {  
     r = mult(r, bn); 
    } 
    return r; 
} 

function sumDigits(n) {  
    var bns = bigInt2str(n, 10);  
    var dStr = 0;  
    var a = bns.split('');  
    for (i in a) {  
     dStr += parseInt(a[i]);  
    }  
    return dStr;  
} 
console.log(sumDigits(pow(2, 1000))); 

请帮我

+0

哪里'MULT()'函数 – adeneo

+1

注意'VAR R =(N,0,0);'不作任何感觉,它最终每次都是'0' – adeneo

+1

2^1000在JavaScript'Number'中无法准确表示** - 它太大了 - 您需要一些可以处理任意精度数字的东西,或者至少它有302个1001位整数 –

回答

0

你可以使用:

function pow(n, p) { 
    var r = bigInt(1); // (n, 0, 0); 
    var bn = bigInt(n); //var bn = (n, 0, 0); 
    for (var i = 0; i < p; i++) { 
     r = r.multiply(bn); //r = mult(r, bn); 
    } 
    return r; 
} 

function sumDigits(n) { 
    var bns = n.toString(); // bigInt2str(n, 10); 
    var dStr = 0; 
    var a = bns.split(''); 
    for (i in a) { 
     dStr += parseInt(a[i]); 
    } 
    return dStr; 
} 
console.log(sumDigits(pow(2, 1000))); 

输出:

1366 

裁判:

https://www.npmjs.com/package/big-integer

installation 
If you are using a browser, you can download BigInteger.js from GitHub or just hotlink to it: 

<script src="http://peterolson.github.com/BigInteger.js/BigInteger.min.js"></script> 
If you are using node, you can install BigInteger with npm. 

npm install big-integer 
Then you can include it in your code: 

var bigInt = require("big-integer"); 

而看到:https://github.com/peterolson/BigInteger.js

+0

@ venu-bollu:我希望这有助于。 – 2016-10-04 06:39:19