1条回答 默认 最新
- 「已注销」 2023-05-05 09:12关注
不知道题主想要什么语言,这里用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类型
解决 无用评论 打赏 举报
悬赏问题
- ¥15 metadata提取的PDF元数据,如何转换为一个Excel
- ¥15 关于arduino编程toCharArray()函数的使用
- ¥100 vc++混合CEF采用CLR方式编译报错
- ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
- ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
- ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
- ¥50 如何openEuler 22.03上安装配置drbd
- ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
- ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
- ¥15 Windows11, backspace, enter, space键失灵