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