猿问

使用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");

}


弑天下
浏览 203回答 2
2回答

杨魅力

1+2+3+。。。+10000000000,这个算式的结果是5.0000000005E+19,太大了,已经超了int型的范围了。如果只是测加法的时间,推荐用循环嵌套,类似这样for&nbsp;(int&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;<&nbsp;1000000;&nbsp;i++)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;n&nbsp;=&nbsp;0; &nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(int&nbsp;j&nbsp;=&nbsp;0;&nbsp;j&nbsp;<&nbsp;10000;&nbsp;j++)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;n&nbsp;+=&nbsp;j; &nbsp;&nbsp;&nbsp;&nbsp;} }

猛跑小猪

那把 x n 和 i 的声明都换成 double但这样做最后的结果可能会和真实结果有误差
随时随地看视频慕课网APP
我要回答