找回密码
 加入
搜索
楼主: jhun

[AU3基础] [追加新题]刚刚看到个数学题,新人来做做吧,呵呵

[复制链接]
发表于 2010-7-27 13:19:01 | 显示全部楼层
Local $x, $y, $j, $Result
Dim $input = InputBox("", "车棚有三轮车和自行车共65辆,输入车轮总数")
If $input<= 195 And $input > 129 Then
    If IsInt(Execute($input)) Then           ;//判断是否是整型量 如果不是则提示 MsgBox(4096, "警告", "车轮残缺不全" & @CRLF & "不予计算")
          If Mod($input,2) <> 0 Or $input >=131 Then   ;//判断车库中肯定共存有2轮
              If Mod($input,3) <> 0 Or $input <195 Then  ;//判断车库中肯定共存有3轮车
                        For $x = 0 To $input / 2             ;//计算2轮            
                                For $y = 0 To $input / 3     ;//计算3轮
                                        $j = $x *2+ $y*3     ;//计算总轮子数量
                                        If $j = $input And $x+$y=65 Then   
                                                $Result &= "自行车有:" & $x & "辆" & @TAB & "三轮车有:" & $y & "辆" & @CRLF
                                         EndIf
                                Next
                        Next
                                             MsgBox(0, "车棚中有", $Result)
                                                 Exit
                    EndIf
                 MsgBox(4096, "警告", "车库中难道没有三轮车吗?")
                 Exit
                EndIf
         MsgBox(4096, "警告", "车库中难道没有自行车吗?")
                 Exit
        EndIf
     MsgBox(4096, "警告", "车轮残缺不全" & @CRLF & "不予计算,请输入整数")
EndIf
MsgBox(4096, "警告", "你怎么算车轮的,范围如下"&@LF _
                                           &@lf _
                                           &'65*2 ~ 65*3 = 130 ~ 195'&@LF _
                                           &@lf _
                                           &'猪脑子阿你!!!!')


各位长辈们看下这样对否!
发表于 2010-7-27 14:13:20 | 显示全部楼层
交个作业,不知道对不

Dim $z,$s,$j
$j=""
For $z=0 To 75
        For $s=0 To 50
                If $s+$z=65 And $z*2+$s*3=150 Then
                        $j=$j&"自行车 "&$z&" 辆 "&"  三轮车"&$s&" 辆 "&@CRLF
                EndIf
        Next
Next
MsgBox(0,"计算结果",$j)
发表于 2010-7-27 16:08:52 | 显示全部楼层
假设全不都是自行车,那么65俩车就有65x2=130,实际轮子是150个,差150-130=20,少20个是因为我没把三轮车当成了自行车,而三轮车比自行车躲一个轮子,所以三轮车是20俩,自行车就是45俩。
发表于 2010-7-28 01:06:04 | 显示全部楼层
Dim $x ,$y ,$s ,$t
$t = ""
For $x = 1 To 8
        For $y = 1 To 12
                For $s = 2 To 36
                        If $x + $y + $s = 36 And $x * 4 + $y * 3 + $s / 2 = 36 Then
                                $t = "男人有:"&$x&"个"&@CRLF&"女人有:"&$y&"个"&@CRLF&"小孩有:"&$s&"个"
                        EndIf
                Next
        Next
Next

MsgBox(0,"",$t)
发表于 2010-7-28 01:23:33 | 显示全部楼层
假设全不都是自行车,那么65俩车就有65x2=130,实际轮子是150个,差150-130=20,少20个是因为我没把三轮车当 ...
lsh127k 发表于 2010-7-27 16:08



    这个算法很直接也很简单啊
Dim $x , $y
$y =150 - 65 * 2
$x = 65 - $y
MsgBox(0,"","三轮车是:"&$y&"辆"&@CRLF&"自行车是:"&$x&"辆")
发表于 2010-7-28 07:34:08 | 显示全部楼层
我看看答案我是新人
发表于 2010-7-28 08:57:03 | 显示全部楼层
不知道程序里要怎么实现呢?
发表于 2010-7-28 11:04:38 | 显示全部楼层
本帖最后由 zps26 于 2010-7-28 11:08 编辑

Dim $a,$b,$c,$d
For $a=0 To 36/4
        For $b=0 To 36/3
                For $c=0 To 36 Step 2
                        If $a+$b+$c=36 And $a*4+$b*3+$c/2=36 Then
                                $d&="男人有"&$a&"人"&@TAB&"女人有"&$b&"人"&@TAB&"孩子有"&$c&"人"&@CRLF
                        EndIf
                Next
        Next
Next
MsgBox(0,"結果有以下可能",$d)
发表于 2010-7-28 11:39:29 | 显示全部楼层
本帖最后由 zps26 于 2010-7-28 11:42 编辑

Dim $x,$z
For $x = 0 To 45-3
        If $x*5+45=$x*7+3 Then
                $z&="買羊人有"&$x&"人"&@TAB&"羊價為"&$x*5+45&"元"&@CRLF
        EndIf
Next
MsgBox(0,"結果有以下可能",$z)
发表于 2010-7-28 15:24:32 | 显示全部楼层
我做了2道题目

2、36个人36块砖,男人搬4快,女人搬3块,小孩2个人搬一块砖。一次搬完,没有闲着的人,求男人,女人,小孩的人数
;容易错误点考虑到所有恩没有闲着
Local $x,$y,$z,$j,$result
   For $x = 0 to 36/4 Step 1
           For $y = 0 to 36/3 Step 1
                   For $z = 0 to 36/2 Step 1
                $j = $x*4 + $y*3 + $z*2     
                                        If $j=36 And $x = $y and $y = $z and $z = $x Then    ;容易错误点考虑到所有恩没有闲着
                                           $Result &= "男人:" & $x & " 个" & @TAB & "女人:" & $y & " 个" &  @TAB & "小孩:" & $z & " 个" & @CRLF
                                        EndIf                          
            Next
                Next
  Next
MsgBox(0, "所有可能性如下:", $Result)
;这道题目如果使用简单的条件语句if , while , select ,等更加简单效率更高,用for枚举的话存在执行效率问题,下题目使用继续使用for,

  ;3、若干个人共同买羊,如果每人出5元,还差45元;如果每人出7元,还差3元,求买羊人数和羊价。
Local $x,$y,$j,$result
      For $x = 0 to 1000 Step 1       ;人数我不知道人数所以定义了一个
                For $y = 0 to 2000 Step 1     ;样价格我不知道羊的价格所以随便定义了一个
                        If $y - $x * 5 = 45 and $y - $x * 7 = 3 Then
                                MsgBox(0,"Result as below"," People:"& $x & @lf _
                                               & " Sheep:" & $y)
                                ExitLoop 1
                                EndIf
                Next
Next
;大家可以明显看到执行效率很低,不知道大家有没有理解之前有个长辈说得执行效率问题之说,好好看看就知道了
发表于 2010-7-28 15:44:46 | 显示全部楼层
第二题
Local $a,$b
For $a=0 To 36
        For $b=0 To 36
        If 4*$a+3*$b+(36-$a-$b)/2=36 Then
                MsgBox(0,"","一共有"&$a&"男人,"&$b&"女人和"&36-$a-$b&"孩子")
        EndIf
Next
Next
发表于 2010-7-28 16:40:59 | 显示全部楼层
#cs ----------------------------------------------------------------------------

4、有奇数块石头沿直线线每隔一米放一块,要把石头集中在最中间的位置上从最右边的石头开始,按顺序每次只能搬一块石头。
    如果某人用这样办法搬石头,除了中间的石头外把其余的石头向中间集中,共走了300米,问一共放了多少石头?
   
   这道题目大家要好好思考一下,这个题目有点歧义哦 ?????
假设:奇数块石头如下
    0 0 0 0 0 0 0 0 0  
   0 0 0 00 0 0 0 0
      0 0 000 0 0 0 0         搬法1 我有从最左边先搬的,楼主是不是这样的想法?
     0 0000 0 0 0 0
         00000 0 0 0 0
          000000 0 0 0
           0000000 0 0
            00000000 0
            000000000
   
   0 0 0 0 0 0 0 0 0
    0 0 0 00 0 0 0 0
    0 0 0 000 0 0 0
     0 0 0000 0 0 0     搬法2 我有从最左边先搬的,然后在右边,是不是这样依次?
    0 0 00000 0 0
       0 000000 0 0
        0 0000000 0
         00000000 0
          00000000
   
   

#ce ----------------------------------------------------------------------------
发表于 2010-7-28 17:22:27 | 显示全部楼层
第四题
Dim $a
For $a=0 To 300
        If $a^2*2+$a=300 Then
                MsgBox(0,"","石头有"&$a*2+1&"个")
        EndIf
        Next
发表于 2010-7-27 19:47:21 | 显示全部楼层
本帖最后由 shenrenba 于 2010-7-28 08:39 编辑

第五题
Dim $a,$b                                                   ;A朝前走a天,B朝前走b天
For $a=0 To 4
        For $b=0 To 4
                If 2*$a+$a+$a=4 And ($b-$a)*2+$b=4 Then                        ;A回来把食物给B和C,B回来把食物给C
                        MsgBox(0,"","最远深入"&($b+4)*20&"千米")
                EndIf
        Next
Next
----------------------------------------------------------看错题了  ------------------------------------
发表于 2010-7-27 23:09:26 | 显示全部楼层
学习一下算法
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-3-28 22:33 , Processed in 0.082175 second(s), 13 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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