4 条题解
-
1
解法一,全模拟
#include <iostream> int main(){ int m,k,day=0; std::cin>>m>>k; while(m>=k){ if(day%k==0)m++; day+=1; m-=1;} std::cout<<day+m; return 0;}
解法二,每次过k天
#include <iostream> int main(){ int m,k,day=0; std::cin>>m>>k; while(m>=k){ day+=k; m-=k-1;} std::cout<<day+m; return 0;}
解法三,计算
#include <iostream> int main(){ int m,k,day=0; std::cin>>m>>k; while(m>=k){ day+=m/k*k; //初步计算最多能跳x*k天 m=m/k+m%k;} //m等于m/k(满k所补贴的钱)+m%k(不满k,剩下的钱) std::cout<<day+m; return 0;}
计算量不大的话,推荐使用解法二
- 1
信息
- ID
- 522
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 6
- 标签
- 递交数
- 1116
- 已通过
- 353
- 上传者