码迷,mamicode.com
首页 > 其他好文 > 详细

编程实现喝汽水问题

时间:2017-11-11 18:55:27      阅读:154      评论:0      收藏:0      [点我收藏+]

标签:amp   sys   .com   image   int   +=   alt   com   es2017   

喝汽水,1瓶汽水1元,2个空瓶可以换一瓶汽水,给20元,可以多少汽水。编程实现。

我是这么理解的 :首先你有20元钱,

保底能喝20瓶汽水,这时候你手里就有20个空瓶子。

20个空瓶子又能换10瓶汽水,此时你手里就有10个空瓶子。 

10个空瓶子又能换5瓶汽水,此时你手里就有5个空瓶子。

5个空瓶子又能换2瓶汽水,此时你手里就有2+1=3个空瓶子。

3个空瓶子又能换1瓶汽水,此时你手里就有1+1=2个空瓶子。

2个空瓶子又能换1瓶汽水,此时你手里就有1个空瓶子。

 也就是说只要你手里的空瓶子数大于1,就能接着喝。下面我们代码实现以下:

#include <stdio.h>
#include <windows.h>
#include <assert.h>
int drink_water(int money)
{
    assert(money);
    int bottle = money;
    int empty = money;
    while(empty > 1) //你手里的空瓶子数大于1,表明你还可以继续喝
    {
        bottle += empty / 2;  //两个空瓶子可以换一瓶汽水
        empty = empty / 2 + empty % 2;  //空瓶子现在是换了之后的瓶子和剩下的空瓶子之和
    }
    return bottle;
}
int main()
{
    int money = 0;
    printf("请输入总金额>") ;
    scanf("%d",&money);
    printf("最多能喝 %d 瓶!\n",drink_water(money));
    system("pause");
    return 0;
}
技术分享技术分享
 
技术分享技术分享技术分享
 
技术分享
      可以发现,不管你有多钱,喝完之后手里还有一个空瓶子,教你个小方法可以让你再喝一瓶:
你可以向商店老板借一个空瓶子并说等会还你,这时候你手里就有两个空瓶子了,可以去换一瓶汽水,
喝完就有一个空瓶子了,然后再还给老板,这时候你总共就喝了2*money瓶汽水了。(前提是老板愿意借你一个)
 

 

 
 
 
 
 
 
 

编程实现喝汽水问题

标签:amp   sys   .com   image   int   +=   alt   com   es2017   

原文地址:http://www.cnblogs.com/xjq6898/p/7819459.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!