标题:关于结构语句
只看楼主
min624132806
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2017-2-20
结帖率:50%
已结贴  问题点数:2 回复次数:3 
关于结构语句
题目:酒的兑换
               2元一瓶;
               2个空瓶兑换一瓶;
               4个盖子兑换一瓶;
               有n元钱,请问能喝上多少瓶酒;


我自行写了个程序请大神指点,有改进的方法没:


#include <stdio.h>
void main ()
{
    max:
{
    int a,b,c,t,t1,t2,m,n;    /*a为瓶酒数,b为空瓶数,c为瓶盖数*/
    a=1,b=0,c=0,t=0;
    printf("请输入:");
    scanf("%d",&m);
    n=m/2;
    for (;a<=n+t;a++)
    {
        c++;
        b++;
        t1=c/4;
        t2=b/2;
        t=t1+t2;
    }
    printf("%d\n",a-1);
}
    goto max;
}
               
搜索更多相关主题的帖子: include 一瓶 
2017-04-04 21:45
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
得分:1 

公式~
a[1]=1;
a[n]=4*n-5;(n>=2)

可以求证~

[此贴子已经被作者于2017-4-5 01:33编辑过]


[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-04-05 01:19
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
得分:0 
回复 2楼 九转星河
证明~
可以用数学归纳法~

当n=1时~
a[n]=1;

当n=2时~

a[n]=3~

当n>=3时~

先喝两罐~
剩余2个盖子~
用那两罐换一罐~
喝掉~
把这个盖子丢一边去忽略~
剩余两个盖子和一个空罐~

再喝下一罐~
然后用空瓶兑换再喝光~
这样少了一个空罐~多出了4个盖子~
然后把4个盖子兑换喝光再兑换该空瓶~
则比原来少了一个空瓶~盖子还是原来的两个~
所以等价于少了一个空瓶喝了4次酒~此时瓶盖依然是两个~

推导完毕~

[此贴子已经被作者于2017-4-5 01:34编辑过]


[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-04-05 01:32
bjut_Allen
Rank: 9Rank: 9Rank: 9
来 自:平乐园工业技术学校
等 级:蜘蛛侠
威 望:8
帖 子:323
专家分:1223
注 册:2016-10-16
得分:1 
从来不敢写goto。。。

Code is my life.
2017-04-05 17:31



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-475786-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.224523 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved