#include<bits/stdc++.h> using namespace std; int main() { long long m,g,f=0,j=0; scanf("%lld",&m); for(long long g=1;g<=(m+1)/2;g++){ if(f>=m){ break; }else{ j+=1; f+=g; } } printf("%lld",j); return 0; }
不确定循环次数,使用 while 循环更方便一些。变量记录总金额,当总金额未满足目标时进行循环,每次循环加上当前的天数(天数也需要变量记录)。最终输出天数。
while
要注意题目的数据范围,存钱目标 mmm 最大是 231−12^{31}-1231−1。虽然 mmm 是在 int 范围内的。但是我们计算的过程是每天累加总金额,最后一天的总金额可能 >m\gt m>m,可能超出 int 范围。
int
注册一个 菜鸟OJ 通用账户,您就可以在我们提供的所有在线评测服务上提交代码、参与讨论。
使用您的 菜鸟OJ 通用账户