欢迎大家订阅我的专栏:算法题解:C++与Python实现!
本专栏旨在帮助大家从基础到进阶 ,逐步提升编程能力,助力信息学竞赛备战!
专栏特色
1.经典算法练习:根据信息学竞赛大纲,精心挑选经典算法题目,提供清晰的代码实现与详细指导,帮助您夯实算法基础。
2.系统化学习路径:按照算法类别和难度分级,从基础到进阶,循序渐进,帮助您全面提升编程能力与算法思维。
适合人群:
- 准备参加蓝桥杯、GESP、CSP-J、CSP-S等信息学竞赛的学生
- 希望系统学习C++/Python编程的初学者
- 想要提升算法与编程能力的编程爱好者
附上汇总帖:GESP认证C++编程真题解析 | 汇总
【题目来源】
洛谷:[B3923 GESP202312 二级] 小杨做题 - 洛谷
【题目描述】
为了准备考试,小杨每天都要做题。第1 11天,小杨做了 道题;第2 22天,小杨做了道题;从第3 33天起,小杨每天做的题目数量是前两天的总和。
此外,小杨还规定,当自己某一天做了大于或等于m mm题时,接下来的所有日子里,他就再也不做题了。
请问,到了第N NN天,小杨总共做了多少题呢?
【输入】
总共4 44行。第一行一个整数a aa,第二行一个整数b bb,第三行一个整数m mm,第四行一个整数N NN。
【输出】
一行一个整数,表示小杨N NN天里总共做了多少题目。
【输入样例】
1 2 10 5【输出样例】
19【算法标签】
《洛谷 B3923 二级] 小杨做题》 #GESP# #2023#
【代码详解】
#include<bits/stdc++.h>// 包含标准库头文件constintN=370;// 定义数组最大长度usingnamespacestd;// 使用标准命名空间intm,n;// m:阈值,n:项数inta[N];// 存储数列的数组intmain(){// 输入前两项和参数m,ncin>>a[1]>>a[2]>>m>>n;// 生成数列直到第n项或超过阈值mfor(inti=3;i<=n;i++){a[i]=a[i-1]+a[i-2];// 斐波那契数列规则if(a[i]>=m){// 如果超过阈值mn=i;// 调整实际计算的项数break;// 终止生成}}// 计算数列前n项的和intans=0;for(inti=1;i<=n;i++){ans+=a[i];// 累加每项}cout<<ans<<endl;// 输出结果return0;// 程序正常结束}【运行结果】
1 2 10 5 19