题目描述
乔治在梦中来到了一个神奇部落,这个部落的神树具有奇特的功能:对于 每一位新朋友,都会获赠金币,而且金币的数量会随时间的延续而增加: 第 1 周,每天 1枚金币; 第 2 周,每天 2枚金币; 第 3 周,每天 3枚金币;⋯⋯ 请问:至少多少天,乔治的金币数量达到 n 枚?
输入描述
一行,只有一个正整数 n。
输出描述
一行,一个整数,表示金币达到 n 枚所需的最少天数。
样例
输入
30
输出
17
提示
【样例说明】
第 1 周:每天 1 枚,共 7 枚;
第 2 周:每天 2 枚,共 14 枚; 第 3 周:每天 3 枚,3 天即可: 7+14+3*3=30 。
共计: 7+7+3 = 17 天。
【数据规模】
对于 30%的数据, n 不超过 2147483647 ; 对于 100%的数据, n 的位数不超过 18。
正确代码:
#include<iostream>
using namespace std;
int main(){
long long n;
cin>>n;
long long cnt=1,sum=0,ans=0;
while(sum<n){
sum+=cnt;
ans++;
if(ans%7==0) cnt++;
}
cout<<ans;
return 0;
}