如何编写出百钱买百鸡这个程序?

[复制链接]
查看11 | 回复4 | 2005-12-6 12:29:16 | 显示全部楼层 |阅读模式
Dim x As Integer
Dim y As Integer
Dim z As IntegerDo While x <= 33
y = 0
Do While y <= 55
z = 0
Do While z <= 100
If (x + y + z = 100 And 3 * x + 2 * y + 0.5 * z = 100) Then Print x & "," & y & "," & z
z = z + 1
Loop
y = y + 1
Loop
x = x + 1
Loop
回复

使用道具 举报

千问 | 2005-12-6 12:29:16 | 显示全部楼层
Dim a As IntegerDim b As IntegerDim c As IntegerDim i As IntegerFor a = 0 To 33For b = 0 To 50
For c = 0 To 200
If a + b + c = 100 And 3 * a + 2 * b + 0.5 * c = 100 Then
Print a & "," & b & "," & c
End If
NextNextNext
回复

使用道具 举报

千问 | 2005-12-6 12:29:16 | 显示全部楼层
dim x as integerdim y as integerx=0do while x<33y=0do while y<(100-3*x)/2
if 3*x+2*y+(100-x-y)/2-100<0.0001 then
print x,y,100-x-y
endify=y+1loopx=x+1loop1、本程序注意效率本程序两层循环可解决问题,并且第二层不必全部循环到50。2、本程序注意系统计算误差控制,不用两个计算值直接进行相等比较,采用相减差小于某一小值控制。x代表母鸡 y代表公鸡100-x-y代表小鸡
回复

使用道具 举报

千问 | 2005-12-6 12:29:16 | 显示全部楼层
#include "stdio.h"main(){int i,j,k; for(i=0;i<=33;i++)for(j=0;j<=50;j++) for(k=0;k<=200;k++)
if((i+j+k==100)&&(i*3+j*2+0.5*k==100))
printf("母鸡、公鸡、小鸡的只数分别是:%d,%d,%d\n",i,j,k);}
回复

使用道具 举报

千问 | 2005-12-6 12:29:16 | 显示全部楼层
用do while不大好吧,明显上条件语句循环,虽然都可以,我觉得用IF END IF思路比较明白,上边的都可以吧,没实验。结果太多了int x,y,z;for(x=20,x<100,x++)for(y=5,y<25,y++)for(z=1,z<20,z++){if(x+y+z==100 & x*5+y*2+z*3==1000)break;}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行