Nisy 发表于 2016-5-27 12:14:45

10元可以喝几瓶啤酒

群里看到的题目:2块钱一瓶啤酒 2个酒瓶可以换一瓶啤酒 4个瓶盖可以换一瓶啤酒 请问10元可以喝多少瓶啤酒

网上有现成的公式和答案,那就再把问题修改下:请帮忙计算 共有100元和35个瓶盖可以换多少啤酒?

细想这个问题,可以用奥数思维去总结公式,也可以用C语言来描述实现逻辑。

用C语言描述的话:就是这些钱可以买的啤酒+这些啤酒可以换的啤酒。 OK 那大家有了逻辑就翻译成C语言试下。


**** Hidden Message *****

千千万是福朋友 发表于 2016-5-27 12:19:21

有意思,来学习一下

yosen2001 发表于 2016-5-27 12:19:34

前排学习,算法是核心。。

zha 发表于 2016-5-27 12:19:38

哈哈,学习一下!

猫子 发表于 2016-5-27 13:13:04

int fun(int nMoney, int nCap)
{
    int nBottle = nMoney / 2;
    nCap += nBottle;
    int nCount = nBottle;
    int nTmp = 0;

    while(nBottle >= 2 || nCap >= 4)
    {
      if(nBottle >= 2)
      {
            nTmp = nBottle / 2;
            nCap += nTmp;
            nCount += nTmp;

            nBottle = nTmp + nBottle % 2;
      }

      if(nCap >= 4)
      {
            nTmp = nCap /4;
            nBottle += nTmp;
            nCount += nTmp;

            nCap = nTmp + nCap % 4;
      }
    }
    return nCount;
}

int main(int argc, char* argv[])
{
    int nCount = fun(10, 0);


        return 0;
}

不知道对不对

Chensity 发表于 2016-5-27 13:20:13

数学推导过程:a(元),b(身),c(盖),d(酒)2a = b + c + d;
2b = b + c + d;
4c = b + c + d;
后两公式推出:
c = d;
推出:
b = 2d;
2a = 2d + d + d;
a = 2d;
---------------------------------
100a + 35c = 100* 2d + 35*d;
                   = 235d;
总感觉怪怪的,不知道是不是出错了。

wai1216 发表于 2016-5-27 13:20:17

#include <stdio.h>
int main(void)
{
        int money = 0, jar = 0, gai = 0;
        int all = jar;
        int t = 1;
        scanf("%d%d", &money, &gai);
        jar = money / 2;
        gai += jar;
        all += jar;
        while (t)
        {
                if (gai >= 4 || jar >= 2)
                {       
                        int c = gai / 4 + jar / 2;
                        all += c;
                        gai = c + gai % 4;
                        jar = c + jar % 2;
                }
                else
                {
                        t = 0;
                }
        }
        printf("%d", all);
        return 0;
}

gagmeng 发表于 2016-5-27 13:37:07

膜拜校长!

小耗子 发表于 2016-6-1 08:55:47

有思想,我就没想过用C写一下

动物凶猛 发表于 2016-6-12 15:56:05

看看大牛的答案
页: [1] 2 3 4
查看完整版本: 10元可以喝几瓶啤酒