题目描述
乔治在梦中来到了一个神奇部落,这个部落的神树具有奇特的功能:对于 每一位新朋友,都会获赠金币,而且金币的数量会随时间的延续而增加: 第 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。
AC代码
#include<bits/stdc++.h>
using namespace std;
long long n,cnt,t;
int main(){
cin>>n;
for(int i=1;i<=n;i++){
for(int j=1;j<=7;j++){
cnt+=i;
t++;
if(cnt>=n){
cout<<t;
return 0;
}
}
}
return 0;
}