繁体   English   中英

Java 和 Python 返回不同的总和并尝试与 C++ 进行比较

[英]Java and Python return different sums and trying to compare with C++

为什么 Java 和 Python 会给出从 1 到 100 万的总和的不同输出。 我尝试了较小的数字,代码输出相同的结果,最多为 100 (5050)

Python

from datetime import datetime
start_time = datetime.now()

sum = 0
for i in range(1,1000000+1):
    #print(i)
    sum+=i
print(sum)

end_time = datetime.now()
print('Duration: {}'.format(end_time - start_time))

爪哇

package sum_1_to_1000;

public class sum {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        long startTime = System.currentTimeMillis();
        int sum = 0;
        for(int i = 1; i <= 1000000; i++){
            //System.out.println(i);
            sum+=i;
        }
        System.out.println(sum);
        long endTime   = System.currentTimeMillis();
        long totalTime = endTime - startTime;
        System.out.println(Math.pow(totalTime*10, -3));
    }

}

我试图用 C++ 来做,但我仍在学习。 如何让下面的代码运行,并打印出运行时间? 有在线运行 C++ 的地方吗?

#include <iostream>
using namespace std;

int main(){
    int sum = 0;
    int i;
    for(i = 1; i <=2; i++){
        sum+=i;
    }
    printf("The Sum is: ", sum);
}
for(int i = 1; i <= 1000000; i++){
            //System.out.println(i);
            sum+=i;
}

真正的sum=(1+1000000)*500000=500000500000 ,它大于Integer.MAX_VALUE (2^31-1)

我有朋友使用 repl.it https://repl.it/languages有很多语言可供您选择使用。 请记住您是在其他人的服务器上运行此程序,因此请注意敏感信息

此外,我过去曾使用 CodeChef.com 在线编译代码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM