本文主要是介绍瞎玩 - 一瓶啤酒2块,两个瓶盖送一瓶,四个空瓶换一瓶。20元一共可以喝几瓶,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
问题:
一瓶啤酒2块,两个瓶盖送一瓶,四个空瓶换一瓶。20元一共可以喝几瓶?
思路:
啤酒,对我们有用的属性就是瓶盖和空瓶,10瓶啤酒可以考虑分别计算瓶盖和空瓶所得瓶数,再求和即可!
代码如下:
#include <stdio.h>
#include <stdlib.h>#define MONEY 20unsigned int compute_fun(unsigned int m,unsigned int n)
{unsigned int res = 0;unsigned int temp=m;while(temp != 0){temp /= n;res += temp;}return res;
}unsigned int recu_fun(unsigned int m,unsigned int n)
{unsigned int val= m;unsigned int res = 0;while(val !=0){val= compute_fun(val,n);res += val;}return res;
}
int main(int argc, char* argv[])
{unsigned int beernum = 0;unsigned int t1 = 0,t2 = 0;beernum = MONEY/2;t1 = recu_fun(beernum,2);t2 = recu_fun(beernum,4);beernum += t1;beernum += t2;printf("t1:%d,t2:%d beer number = %i\n",t1,t2,beernum);getchar();return 0;
}
运行结果:
这篇关于瞎玩 - 一瓶啤酒2块,两个瓶盖送一瓶,四个空瓶换一瓶。20元一共可以喝几瓶的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!