标题:C语言的买气球的问题
只看楼主
lin5161678
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
得分:4 
回复 10楼 自学的数学
再说一遍 别用浮点数
浮点数比较需要特别的技巧
在这里没有必要用到

https://zh.
2018-05-27 20:35
自学的数学
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:46
帖 子:967
专家分:4146
注 册:2017-11-15
得分:0 
回复 11楼 lin5161678


[此贴子已经被作者于2018-5-27 21:33编辑过]

2018-05-27 20:38
lin5161678
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
得分:0 
回复 12楼 自学的数学
0.5*hong+2*huang+5*lan==200

https://zh.
2018-05-27 20:44
xzlxzlxzl
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖北
等 级:贵宾
威 望:125
帖 子:1091
专家分:5825
注 册:2014-5-3
得分:0 
难道不知道放大10倍做吗?或者计算单位为角即可。
2018-05-27 20:53
lin5161678
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
得分:0 
回复 14楼 xzlxzlxzl
放大10倍的确可以不过没必要
这里只需要
红气球 += 2
就行了

https://zh.
2018-05-27 20:59
lin5161678
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
得分:0 
程序代码:
#include <stdio.h>
int main(int argc, char *argv[])
{
    for(int blue = 1; blue < 200/5; ++blue)    
    {
        for(int yellow = 1; yellow < 200/2; ++yellow)    
        {
            if(blue*3 + yellow == 100)
                printf("红气球%d 黄气球%d 蓝气球%d\n", 2*blue, yellow, blue);
        }
    }


    return 0;
}

联立方程可以简化很多

===========

程序代码:
#include <stdio.h>
int main(int argc, char *argv[])
{
    for(int blue = 1; 3*blue < 100; ++blue)    
    {
        if(blue*5 + (100-3*blue)*2 + blue == 200)
            printf("红气球%d 黄气球%d 蓝气球%d\n", 2*blue, 100-3*blue, blue);
    }

 

 
    return 0;
}


[此贴子已经被作者于2018-5-27 22:08编辑过]


https://zh.
2018-05-27 21:19
lin5161678
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
得分:0 
回复 12楼 自学的数学
一共33种结果
你才4种
这就是为什么说别用浮点数了
========================
看错了 4种是你循环条件设置错了
不是浮点数导致的
不过这里浮点数直接 == 比较的确是有问题的

[此贴子已经被作者于2018-5-27 21:27编辑过]


https://zh.
2018-05-27 21:20
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
得分:0 
回复 16楼 lin5161678
看到其实是3x+y=100

y=100-3x
是不是直接枚举x就可以了?~
收到的鲜花
  • lin51616782018-05-27 21:23 送鲜花  1朵   附言:点赞 对的

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2018-05-27 21:22
lin5161678
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
得分:0 
回复 18楼 九转星河
不对
这个条件是要放在if里面的
不能再化掉了
========
懂了 根据3种气球个数可以用原始条件做if


[此贴子已经被作者于2018-5-27 21:34编辑过]


https://zh.
2018-05-27 21:26
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
得分:0 
回复 19楼 lin5161678
看到你代码都是++blue,++yellow嘛
0<100-3x就可以了


PS:看循环样子是优先按yellow的递增顺序输出,那就是(100-y)%3是一个整数……算了,你那个其实已经很简化了,总之能得出结果就可以了~

[此贴子已经被作者于2018-5-27 21:35编辑过]


[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2018-05-27 21:32



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




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

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