求一算法 请算数比较好的帮忙[已解决]
本帖最后由 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 循环算
请高手帮忙 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就是负数了 只能循环到63
到64就是负数了
gto250 发表于 2010-8-4 20:32 http://www.autoitx.com/images/common/back.gif
谢谢你的解答 没钱加给你了 呵呵! 本帖最后由 lchl0588 于 2010-8-5 21:54 编辑
向楼下几位学习,知道如何........................ 回复 2# gto250
可以在循环的时候把1也循环进去吗? 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 不用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 For $i = 0 to 31
ConsoleWrite(BitShift(1, -$i) & @CRLF)
Next- -||| 回复 8# pusofalse
位移运算,精彩。 - -|||
pusofalse 发表于 2010-8-4 22:19 http://www.autoitx.com/images/common/back.gif
还能这样玩,NB... Dim $x ,$y
$x = 0
$y = 1
For $i = 1 To 26
$x = $x + $y
$y = $y + $y
MsgBox(0,"",$y)
Next 这样也是可以的
但是我想知道的是
怎么样把1也一起循环进去
我所不懂的就是这个 $x未参与运算,可去除。
1未加入是排列问题。修改如下:Dim $x, $y
$y = 1
For $i = 1 To 26
ConsoleWrite( $y & "+" & $y & "=" & $y + $y&@CRLF)
$y = $y + $y
Next 不用for行不Dim $a = 1,$b
While $a > 0
$b = $a
$a += $a
WEnd
MsgBox(0,"",$b) 无语中哦,我以前没学好
页:
[1]