在MATLAB中用vpa处理大数字

时间:2017-02-09 13:35:15

标签: matlab

我试图将数字2 ^ 1000中的每个数字相加,例如,25346 = 2 + 5 + 3 + 4 + 6 = 20中每个数字的总和。

我在Matlab中编写了一个代码如下:

clc, clear all, close all,
x=2^1000;
x=vpa(x,400);
sum=0;
while x>0 
    num=mod(x,10);
    sum = sum+num;
    x=floor(x/10); 
end
sum % = 1349, correct answer should be 1366

对于较小的数字,此代码有效。我猜vpa命令有些可疑,但我无法弄清楚是什么。

有人有什么想法吗?在matlab中有更简单,更快捷的方法吗?

1 个答案:

答案 0 :(得分:1)

合并这两行,如文档中所示:

x=2^1000;
x=vpa(x,400);

到这个

x=vpa(2^1000,400);