。。。。。。。。。强。。。。。。。。。。。
。。。。。。。。。强。。。。。。。。。。。
。。。。。。。。。强。。。。。。。。。。。
对于给定的正整数n,求1+2+3+4+……+n采用逐个累加与n(n+1)/2(高斯法)两种解法。对于相同的n,给出求和结果和求解时间,用相关数据(n=9999 9999)进行测试。)
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- CSDN专家-深度学习进阶 2021-09-11 19:35关注
#include <stdio.h> #include <time.h> //clock_t, clock, CLOCKS_PER_SEC #include <math.h> //------方法1----------------------------------------------- long add1(long n) //方法1:求1+2+...+n { long i,sum=0; for (i=1;i<=n;i++) sum+=i; return sum; } void AddTime1(long n) //采用方法1的耗时统计 { clock_t t; long sum; t=clock(); sum=add1(n); t=clock()-t; printf("方法1:\n"); printf(" 结果:1~%d之和:%ld\n",n,sum); printf(" 用时:%lf秒\n" ,((float)t)/CLOCKS_PER_SEC); } //------方法2----------------------------------------------- long add2(long n) //方法2:求1+2+...+n { return n*(n+1)/2; } void AddTime2(long n) //采用方法2的耗时统计 { clock_t t; long sum; t=clock(); sum=add2(n); t=clock()-t; printf("方法2:\n"); printf(" 结果:1~%d之和:%ld\n",n,sum); printf(" 用时:%lf秒\n" ,((float)t)/CLOCKS_PER_SEC); } //------------------------------------------------------------ int main() { int n; printf("n(大于1000000):"); scanf("%d",&n); if (n<1000000) return 0; AddTime1(n); AddTime2(n); return 1; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 4无用
悬赏问题
- ¥15 minnio内存占用过大,内存没被回收(Windows环境)
- ¥65 抖音咸鱼付款链接转码支付宝
- ¥15 ubuntu22.04上安装ursim-3.15.8.106339遇到的问题
- ¥15 求螺旋焊缝的图像处理
- ¥15 blast算法(相关搜索:数据库)
- ¥15 请问有人会紧聚焦相关的matlab知识嘛?
- ¥15 网络通信安全解决方案
- ¥50 yalmip+Gurobi
- ¥20 win10修改放大文本以及缩放与布局后蓝屏无法正常进入桌面
- ¥15 itunes恢复数据最后一步发生错误