用VB做一道题!初学者不会,望高手指点!

来源:百度知道 编辑:UC知道 时间:2024/05/10 12:22:59
1+2+4+16+256+65536+……+(第64位的数)
也就是2的零次幂+2的一次幂+2的2*2次幂+2的2*2*2次幂……一直加到第64位!求和!

其实这是一个故事,一个科学教(名字我忘了)发明了国际象棋,国王(很吝啬)让他许一个愿望,他说,请用您的麦粒摆满这个棋盘(共64个格子);第一个格子放1个麦粒,第二个放2个,第3个放4个,第4个放16个……以此类推,最后将上面的麦粒分发给穷人们……国王觉得这个愿望再简单不过,可最后竟放了两个仓库的麦子……!

请高手帮帮我吧,谢谢了……
不好意思,可能还是不对……您帮忙再看看啊
不会出现2的3次幂的,for i=0 to 63 这个循环中会出现 i=3的
如果改为 for i=0 to 63 setp 2 这样也不对!
受累再仔细看看题想一想啊,我是自己想了,但是没想出来,麻烦了……

算法很简单:最没有效率的写法:
dim n as double
n=1
for i= 0 to 62
n=n+2^(2^i)
next i
text1=n
忘了是不是double也会溢出,如果会溢出,或是要精确数字不能用科学计数法表示那就麻烦了,需要自己写个记录大的整数的方法

顺便说一下不是两个仓库那么点,而是可以铺满地球n公尺厚,或是等于全世界2000年生产的麦子总和

这个和原先的那个数学家不一样了,没注意
改成上面这样

你的想法是错的。你给的题的规律是前一个数的平方。你先设两个变量
a=2;dim=0然后循环
i=1;i<=63;i++
{
a=a*a;
dim=a+dim;
}
dim=1+dim
大概思路 是这样.你分析规律错了

Private Sub Command1_Click()
a = 0
b = 0
For i = 0 To 63
a = a + 2 ^ i
b = b + 2 ^ a
Next
Text1.Text = b
End Sub