2 条题解

  • 0
    @ 2025-8-29 12:16:41

    #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; }

    • 0
      @ 2024-4-6 17:37:07

      不确定循环次数,使用 while 循环更方便一些。变量记录总金额,当总金额未满足目标时进行循环,每次循环加上当前的天数(天数也需要变量记录)。最终输出天数。

      要注意题目的数据范围,存钱目标 mm 最大是 23112^{31}-1。虽然 mm 是在 int 范围内的。但是我们计算的过程是每天累加总金额,最后一天的总金额可能 >m\gt m,可能超出 int 范围。

      • 1

      信息

      ID
      48
      时间
      1000ms
      内存
      256MiB
      难度
      7
      标签
      递交数
      114
      已通过
      28
      上传者