题目名称:贝博士的机械零件
贝博士是个大忙人,他在设计和制造一台非常复杂的机械式计算机。 最近贝博士有一点烦恼,因为机械零件的种类繁多, 磨损又快,经费不太够用了。不过,他发现有一些机械零件在磨损以后,可以用若干同一型号的磨损旧零件重新回炉熔化 以后再铸造出一个该型号的新零件,符合这样的特点的机械零件称为可翻新零件。 于是贝博士请来了他的助手艾小姐,请 她统计一下有多少种型号的可翻新零件,每一种目前有多少存量又能以多少个旧零件重新回炉铸造出一个新零件,要求计 算出对应于每一种机械零件他最终能使用的零件个数。
题解
明显手中的存量p是一定会使用完的,其中使用过的零件数量不小于q个就要用q个使用过的零件造出一个新的的零件,所以用一个循环,条件为p>=q的时候,算出新造出的零件个数。
#include<bits/stdc++.h>
using namespace std;
int main(){
int p,q,sum=0,m; //p为开始时手中新零件存量,q个旧零件就可以造出一个新零件
cin>>p>>q;
sum = p; //p是要全部使用掉的,直接让sum=p
while(p>=q){
m = p/q; //计算要造出多少个新零件
sum += m; //使用这些新零件
p = p % q; //看余下多少旧零件
p += m; //注意造出的新零件使用后也是旧零件了
}
cout<<sum;
return 0;
}