【有趣的C语言】空瓶换汽水问题

有趣的C语言

  相信大家学习C语言的过程中都做过这么一道题:
  
  喝汽水,1瓶汽水1元,两个空瓶可以换一瓶汽水,给20元,可以喝多少瓶汽水。编程实现。

  那么这道题在C语言中应该如何实现呢?
  下面是我写的代码:

#include <stdio.h>

#define MONEY 20

int main()
{
    int bottle = MOENY;
    int count = MONEY;
    int empty = 0;

    while(bottle / 2)
    {   
        empty = bottle % 2;
        bottle /= 2;
        count += bottle;
        bottle += empty;
    }   

    printf("%d\n", count);
    return 0;
}

  思路如下:
  首先,一元一瓶的汽水,有多少钱就能喝多少瓶,那么也就有多少个空瓶,我定义了两个变量,一个是空瓶,一个是喝到汽水的总瓶数。然后将它们都初始化为钱数。
  随后进入循环,循环退出的条件,我设置的是,当空瓶的数量不足以换取汽水时退出。
  20瓶显然可以换取,那么进入,然后先将不足以换取汽水的空瓶数给(empty)变量(其实如果又多余的不足以换取空瓶的瓶子的话,这个数恒等于 1,这个相信大家都能明白为什么)。然后将(bottle)空瓶换成汽水,再将汽水加到(count)喝到汽水的总瓶数中。最后将(empty)不足以换取汽水的瓶子加到空瓶中,以便凑够下次换取汽水的瓶子的数量,随后再进行循环条件判断…
  最后退出循环时,输出(count)的大小。这里的(count)就是我们喝到的汽水的总瓶数了。
 
   
     
       
       
  如果有对于我的解题思路有更好的优化的小伙伴,麻烦在评论区留言,非常感谢!!!
    
      
        
        

全文完,感谢浏览

猜你喜欢

转载自blog.csdn.net/qq_41866437/article/details/80106820