找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
查看: 5334|回复: 3

[讨论]一个经典数学问题的讨论!!

[复制链接]

54

主题

345

回帖

0

精华

铂金会员

天马行空

积分
2205
发表于 2005-5-24 23:56:55 | 显示全部楼层 |阅读模式
<P>古代《张邱建算经》中的“百鸡问题”是一道很有名的算题。题目内容是:用100元买100只鸡,大公鸡5元1只,母鸡3元1只,小鸡1元3只。问各能买多少只? </P>
<P>三个网友分别写了三段代码:</P>
<P>第一个网友:
Dim i, j, k As Integer
For i = 1 To 20
For j = 1 To 30
For k = 3 To 99
If k Mod 3 = 0 And i &lt; k And j &lt; k Then
If 6 * i + 3 * j = k And i + j + k = 100 Then
List1.AddItem i &amp; " " &amp; j &amp; " " &amp; k
End If
End If
Next
Next
Next
这是一个常规的思路,就是三种鸡的总数为100,钱为100。缺点有二: 一,运算过于复杂,三重循环;二,写代码注意缩进!</P>
<P>第二个网友:</P>
<P>Dim x As Integer, y As Integer, z As Integer
For x = 0 To 20
    For y = 0 To 34
        z = 100 - x - y
        If 5 * x + 3 * y + z / 3 = 100 Then
           Print x, y, z
        End If
    Next y
Next x </P>
<P>经过思考,母鸡最多可以买34只,公鸡最多可以买20只,剩下的自然就是小鸡数量了,这样就可以少掉很多不必要的循环累赘,加快处理速度!</P>
<P>第三个网友:</P>
<P>Option Explicit
Dim i%, j%
Private Sub Form_Load()
Me.Show
    For i = 1 To 33
        For j = 1 To 20
            If 4 * i + 7 * j = 100 Then
                 Print j; i; 100 - i - j
             End If
        Next j
   Next i
End Sub
他的思路是先通过对数量方程和钱数方程的合并消去了小鸡(因为小鸡的数量肯定最多),然后循环输出。</P>
<P>大家不要感觉这个问题很简单随便写个代码就ok ,其实重要的是分析你的算法运算速度等等很多方面的问题,这个小问题也有很多方法实现,希望大家多多讨论,最好把自己的思路和代码发上来大家讨论!!!</P>
爱情是狗屁,不如好好去努力, 享受生活才是快乐的真谛! 本人比较菜,多多指教!

275

主题

3019

回帖

1

精华

管理员

嗷嗷叫的老马

积分
17066

论坛牛人贡献奖关注奖最佳版主进步奖人气王疯狂作品奖精英奖赞助论坛勋章乐于助人勋章

QQ
发表于 2005-5-25 16:24:41 | 显示全部楼层
<P>.......晕了!!!</P><P>什么和什么呀??</P>
我就是嗷嗷叫的老马了......

275

主题

3019

回帖

1

精华

管理员

嗷嗷叫的老马

积分
17066

论坛牛人贡献奖关注奖最佳版主进步奖人气王疯狂作品奖精英奖赞助论坛勋章乐于助人勋章

QQ
发表于 2005-5-25 22:21:24 | 显示全部楼层
<P>..........................怎么感觉话风不太对?</P><P>还是说说程序吧!!大家还有更好的解决办法吗?</P>
我就是嗷嗷叫的老马了......

54

主题

345

回帖

0

精华

铂金会员

天马行空

积分
2205
 楼主| 发表于 2005-6-13 18:43:22 | 显示全部楼层
<P>呵呵   条条大道通北京哦!!!!!!</P>
爱情是狗屁,不如好好去努力, 享受生活才是快乐的真谛! 本人比较菜,多多指教!
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

快速回复 返回顶部 返回列表