找回密码
 加入
搜索
查看: 2888|回复: 14

[AU3基础] 求一算法 请算数比较好的帮忙[已解决]

 火.. [复制链接]
发表于 2010-8-4 20:19:22 | 显示全部楼层 |阅读模式
本帖最后由 anchie 于 2010-8-8 15:06 编辑

1
1 + 1 = 2
2 + 2 = 4
4 + 4 = 8
8 + 8 = 16
16 + 16 = 32
32 + 32 = 64
64 + 64 = 128
128 + 128 = 256
256 + 256 = 512
512 + 512 = 1024
1024 + 1024 = 2048
2048 + 2048 = 4096
4096 + 4096 = 8192
8192 + 8192 = 16384
16384 + 16384 = 32768
32768 + 32768 = 65536
65536 + 65536 = 131072
131072 + 131072 = 262144
262144 + 262144 = 524288
524288 + 524288 = 1048576
1048576 + 1048576 = 2097152
2097152 + 2097152  = 4194304
4194304 +  4194304 = 8388608

注:用for...NEXT 循环算
请高手帮忙

评分

参与人数 1金钱 +10 收起 理由
afan + 10

查看全部评分

发表于 2010-8-4 20:32:56 | 显示全部楼层
Dim $a=1
For $i=1 To 63
        If $i=1 Then
        ConsoleWrite($a&@CRLF)
Else
        ConsoleWrite($a/2&"+"&$a/2&"="&$a&@CRLF)
        EndIf
        $a=$a+$a
Next
只能循环到63
到64就是负数了
 楼主| 发表于 2010-8-4 20:36:58 | 显示全部楼层
只能循环到63
到64就是负数了
gto250 发表于 2010-8-4 20:32



    谢谢你的解答 没钱加给你了 呵呵!
发表于 2010-8-4 20:37:51 | 显示全部楼层
本帖最后由 lchl0588 于 2010-8-5 21:54 编辑

向楼下几位学习,知道如何........................
 楼主| 发表于 2010-8-4 20:43:15 | 显示全部楼层
回复 2# gto250


    可以在循环的时候把1也循环进去吗?
发表于 2010-8-4 20:45:53 | 显示全部楼层
For $i=1 To 63

        If $i=1 Then
        Dim $a=1
        ConsoleWrite($a&@CRLF)

Else

        ConsoleWrite($a/2&"+"&$a/2&"="&$a&@CRLF)

        EndIf

        $a=$a+$a

Next

评分

参与人数 1金钱 +30 收起 理由
afan + 30

查看全部评分

发表于 2010-8-4 22:18:00 | 显示全部楼层
不用BIGNUMBER函数的话,只能循环1022次。
数学问题还是召唤C.L兄来解决吧。
$number=1.0000000000000000
For $i=0 To 10000
        $n=$number*2
        ConsoleWrite($number&"+"&$number&"="&$n&@CRLF)
        $number=$number*2
        If StringInStr($number,"1.#INF") Then 
                MsgBox(0,0,$i)
                ExitLoop
        EndIf
Next

评分

参与人数 1金钱 +30 收起 理由
afan + 30

查看全部评分

发表于 2010-8-4 22:19:30 | 显示全部楼层
For $i = 0 to 31
      ConsoleWrite(BitShift(1, -$i) & @CRLF)
Next
- -|||

评分

参与人数 2金钱 +75 收起 理由
gapkiller + 25 帅~
afan + 50

查看全部评分

发表于 2010-8-4 22:27:47 | 显示全部楼层
回复 8# pusofalse
位移运算,精彩。
发表于 2010-8-4 22:29:50 | 显示全部楼层
- -|||
pusofalse 发表于 2010-8-4 22:19



    还能这样玩,NB...
 楼主| 发表于 2010-8-5 09:19:46 | 显示全部楼层
Dim $x ,$y
$x = 0
$y = 1
For $i = 1 To 26
        $x = $x + $y
    $y = $y + $y
        MsgBox(0,"",$y)
Next
 楼主| 发表于 2010-8-5 09:20:27 | 显示全部楼层
这样也是可以的
但是我想知道的是
怎么样把1也一起循环进去
我所不懂的就是这个
发表于 2010-8-5 10:08:56 | 显示全部楼层
$x未参与运算,可去除。
1未加入是排列问题。修改如下:
Dim $x, $y
$y = 1
For $i = 1 To 26
        ConsoleWrite( $y & "+" & $y & "=" & $y + $y&@CRLF)
        $y = $y + $y
Next
发表于 2010-8-5 10:43:59 | 显示全部楼层
不用for行不
Dim $a = 1,$b
While $a > 0 
    $b = $a
        $a += $a
WEnd
MsgBox(0,"",$b)
发表于 2010-8-23 15:00:40 | 显示全部楼层
无语中哦,我以前没学好
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-10-3 10:32 , Processed in 0.108377 second(s), 30 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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