不知道题主想要什么语言,这里用python和C语言各写了一份
# -*- coding: utf-8 -*-
"""
Spyder Editor
This is a temporary script file.
"""
import time
# 普通累加求和方法
def sum1(n):
start_time = time.time() #开始时间
s = 0
for i in range(1, n+1):
s += i
end_time = time.time() #结束时间
t = end_time - start_time
return s, t
# 高斯求和方法
def sum2(n):
start_time = time.time() #开始时间
s = (1 + n) * n // 2
end_time = time.time() #结束时间
t = end_time - start_time
return s, t
def test(n):
s1, t1 = sum1(n)
s2, t2 = sum2(n)
print("普通累加求和:", s1, "时间:", t1)
print("高斯求和:", s2, "时间:", t2)
# 测试
test(10000000)
#include <stdio.h>
#include <time.h>
// 普通累加求和方法
void sum1(long long n) {
clock_t start_time = clock(); //开始时间
long long s = 0;
for (long long i = 1; i <= n; i++) {
s += i;
}
clock_t end_time = clock(); //结束时间
double t = (double)(end_time - start_time) / CLOCKS_PER_SEC; // 计算耗时
printf("普通累加求和:%lld,时间:%f秒\n", s, t);
}
// 高斯求和方法
void sum2(long long n) {
clock_t start_time = clock(); //开始时间
long long s = (1 + n) * n / 2;
clock_t end_time = clock(); //结束时间
double t = (double)(end_time - start_time) / CLOCKS_PER_SEC; // 计算耗时
printf("高斯求和方法:%lld,时间:%f秒\n", s, t);
}
void test(long long n) {
sum1(n);
sum2(n);
}
int main() {
test(10000000);
return 0;
}
在C++里的结果会超出int的范围,所以要用long long类型