欢迎关注本专栏《C++从零基础到信奥赛入门级(CSP-J)》
问题:1146. 求S的值
类型:递归基础、函数
题目描述:
求 S=1+2+4+7+11+16…的值刚好大于等于 5000 时 S 的值。
输入:
无。
输出:
一行,一个整数。
完整代码如下:
#include<bits/stdc++.h>
using namespace std;
int dg(int d){
int res;
if(d==1){
res=1;
}else{
res=dg(d-1)+d-1;
}
return res;
}
int main(){
//一、分析问题
//未知:求 S=1+2+4+7+11+16…的值刚好大于等于 5000 时 S 的值。
//二、定义变量(已知、未知、关系)
int s=0,i=1;
//三、输入已知
//四、根据关系计算
while(s<5000){
s+=dg(i);
++i;
}
//五、输出未知
cout<<s;
return 0;
}