使用C遍历大数字

请帮忙写一个简单的C程序,我用来简单的测试下JS、python、C的性能。

js代码

var x = 10000000000
var n = 0;
for(var i = 0; i < x; i++){
   n+=i
}
console.log(n)
console.log('ok')

写出这个遍历逻辑的C类语言,谢谢。

只是简单的把玩,不可较真,我写的C语言,它会报出溢出错误。

#include <stdio.h>
int x = 10000000000;
int n = 0;
int main() {
    for(int i = 0; i<x; i++) n = n+i;
    printf("%d" ,n);
    printf("%s" ,": ok");
}
阅读 2.4k
2 个回答

那把 x n 和 i 的声明都换成 double

但这样做最后的结果可能会和真实结果有误差

1+2+3+。。。+10000000000,这个算式的结果是5.0000000005E+19,太大了,已经超了int型的范围了。
如果只是测加法的时间,推荐用循环嵌套,类似这样

for (int i = 0; i < 1000000; i++) {
    n = 0;
    for (int j = 0; j < 10000; j++) {
        n += j;
    }
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题