序列求和
2021/7/8 6:06:17
本文主要是介绍序列求和,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
C++序列求和
问题描述
求1+2+3+4+...+n的和
数据规模与约定
n >= 1 && n <= 1,000,000,000
解题思路
- 本题最直观的方法就是用一个for循坏求出结果,但是注意这里的数据规模很大,用for循坏运算时间长,所以for循坏并不是最优解
- 利用等差数列求和的公式比for循坏执行的时间更短
- 第三个方法就是递归,但递归会保存大量临时数据和重复数据,太多的话会造成栈溢出,程序崩溃
方法一:循环累加法
#include<iostream> using namespace std; int main() { long long int s,count = 0; cin>>s; for(;s >= 1;s--) { count += s; } cout<<count<<endl; system("pause"); cin.get(); return 0; }
方法二:公式求和法
等差数列求和公式:S=[项数 *(首项 + 尾项)] / 2
#include<iostream> using namespace std; int main() { long long int s; cin>>s; cout<<s*(1+ s)/2<<endl; system("pause"); return 0; }
方法三:递归法
#include<iostream> using namespace std; long long int fun(long long int s) { if(s > 0) { return s + fun(s - 1); } else return 0; } int main(int argc, char const *argv[]) { long long int s,count; cin>>s; count = fun(s); cout<<count<<endl; return 0; }
这篇关于序列求和的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-24怎么修改Kafka的JVM参数?-icode9专业技术文章分享
- 2024-12-23线下车企门店如何实现线上线下融合?
- 2024-12-23鸿蒙Next ArkTS编程规范总结
- 2024-12-23物流团队冬至高效运转,哪款办公软件可助力风险评估?
- 2024-12-23优化库存,提升效率:医药企业如何借助看板软件实现仓库智能化
- 2024-12-23项目管理零负担!轻量化看板工具如何助力团队协作
- 2024-12-23电商活动复盘,为何是团队成长的核心环节?
- 2024-12-23鸿蒙Next ArkTS高性能编程实战
- 2024-12-23数据驱动:电商复盘从基础到进阶!
- 2024-12-23从数据到客户:跨境电商如何通过销售跟踪工具提升营销精准度?