瞎玩 - 一瓶啤酒2块,两个瓶盖送一瓶,四个空瓶换一瓶。20元一共可以喝几瓶

来源:互联网 发布:想在淘宝直播 编辑:程序博客网 时间:2024/06/09 22:40

问题:

一瓶啤酒2块,两个瓶盖送一瓶,四个空瓶换一瓶。20元一共可以喝几瓶?

思路:

啤酒,对我们有用的属性就是瓶盖和空瓶,10瓶啤酒可以考虑分别计算瓶盖和空瓶所得瓶数,再求和即可!

代码如下:

#include <stdio.h>#include <stdlib.h>#define MONEY20unsigned 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;}
运行结果:


0 0
原创粉丝点击