回 帖 发 新 帖 刷新版面

主题:百元买百鸡

百元买百鸡
用100元钱买100只鸡,公鸡每只5元,母鸡每只3元,小鸡3只1元,问能买公鸡、母鸡和小鸡分别多少只?

DEFINT A-C
CLS
PRINT "公鸡", "母鸡", "小鸡"
FOR a = 0 TO 20
    FOR b = 0 TO 33
        c = 100 - a - b
        IF 5 * a + 3 * b + c \ 3 = 100 AND c MOD 3 = 0 THEN
            PRINT a, b, c
        END IF
    NEXT
NEXT

'=====================================
'             运行结果
'=====================================

'公鸡    母鸡    小鸡
'   0      25      75
'   4      18      78
'   8      11      81
'  12       4      84  

回复列表 (共18个回复)

沙发

好像蛮简洁的,很好!

板凳

好的,我收了

3 楼

我分比你高,我收徒弟!!!!!!!!!!!!!!!!!
[em12][em12][em12][em12][em12][em12][em12][em12][em12][em12][em12][em12]

4 楼

百元买百鸡
用100元钱买100只鸡,公鸡每只5元,母鸡每只3元,小鸡3只1元,问能买公鸡、母鸡和小鸡分别多少只?

DEFINT A-C
CLS
PRINT "公鸡", "母鸡", "小鸡"
FOR a = 0 TO 20
    FOR b = 0 TO 33
        c = 100 - a - b
        IF 5 * a + 3 * b + c \ 3 = 100 AND c MOD 3 = 0 THEN
            PRINT a, b, c
        END IF
    NEXT
NEXT

'=====================================
'             运行结果
'=====================================

'公鸡    母鸡    小鸡
'   0      25      75
'   4      18      78
'   8      11      81
'  12       4      84   
引用

5 楼

你问什么?我怎么看不出来?

6 楼

不错  程序是简洁

7 楼

楼上不是最简

8 楼

那你将这程序,再简给我看,有时候简洁了未必就是一件好事

9 楼

最简好像是用一重循环,不过能用LZ的方法做出来的也算是高手了!

10 楼

还有最简的:
X代表公鸡,Y代表母鸡,Z代表小鸡
钱数写成公式就是:5X+3Y+3/1Z=100
只数写成公式就是:X+Y+Z=100
我们把钱数公式等号左边和右边各乘上3就等于:15X+9Y+Z=300
那钱数公式减去只数公式就是15X-X:9Y-Y:Z-Z:300-100
这样就得出另一个公式:14X+8Y=200
最后再把得出的公式等号左边和右边各除以2就等于:7X+4Y=100
用一个单程循环FOR X = 1 TO 12
因为X最小是一,最大是12
但是单数*7还是等于单数,100-单数还是单数,不可能被4整除,所以循环还可以简化成:
FOR X = 2 TO 12 STEP 2
但是2*7=14:100-14=86
86不能被4整除因为2*7不能被4整除,所以X的值只有可能是4的倍数,所以循环还可以简化成:
FOR X = 4 TO 12 STEP 4
写成程序就是:
CLS
FOR X = 4 TO 12
 Y=100-X*7
 Z=100-X-Y
 IF X*5+Y*4+Z/3=100 THEN PRINT X;Y;Z
NEXT X
END
就这么简单

我来回复

您尚未登录,请登录后再回复。点此登录或注册