anchie 发表于 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 循环算
请高手帮忙

gto250 发表于 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就是负数了

anchie 发表于 2010-8-4 20:36:58

只能循环到63
到64就是负数了
gto250 发表于 2010-8-4 20:32 http://www.autoitx.com/images/common/back.gif


    谢谢你的解答 没钱加给你了 呵呵!

lchl0588 发表于 2010-8-4 20:37:51

本帖最后由 lchl0588 于 2010-8-5 21:54 编辑

向楼下几位学习,知道如何........................

anchie 发表于 2010-8-4 20:43:15

回复 2# gto250


    可以在循环的时候把1也循环进去吗?

gto250 发表于 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

3mile 发表于 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

pusofalse 发表于 2010-8-4 22:19:30

For $i = 0 to 31
      ConsoleWrite(BitShift(1, -$i) & @CRLF)
Next- -|||

3mile 发表于 2010-8-4 22:27:47

回复 8# pusofalse
位移运算,精彩。

afan 发表于 2010-8-4 22:29:50

- -|||
pusofalse 发表于 2010-8-4 22:19 http://www.autoitx.com/images/common/back.gif


    还能这样玩,NB...

anchie 发表于 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

anchie 发表于 2010-8-5 09:20:27

这样也是可以的
但是我想知道的是
怎么样把1也一起循环进去
我所不懂的就是这个

3mile 发表于 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)

zzz867 发表于 2010-8-23 15:00:40

无语中哦,我以前没学好
页: [1]
查看完整版本: 求一算法 请算数比较好的帮忙[已解决]