主题:关于乘方的问题
[em8]
一个打印出所有的水仙花(指一个三位数,其各位数立方和等于该数)的数相关事例,我编写的程序如下:
cls
for i=100 to 999
a=i mod 10
b=i\10 mod 10
c=i\100
if a^3+b^3+c^3=i then print i;
next i
end
我认为这个程序没什么问题,但还是输入电脑运行一下,可是屏幕上没有任何输出,试过几次,结果依然如故。
在纳闷之余,把a^3+b^3+c^3=i 改成了 a*a*a+b*b*b+c*c*c=i 后,再次运行程序,却显示正确的结果。在思索a^3表示的是a的三次方,而a*a*a也是,却差别如此之大呢?
在百思不得齐解之时,试过许多关于a^3的问题都可以输出,而唯独此题却不能,但当再次对程序修改,把if a^3+b^3+c^3=i then print i;改成以下几行:
x=a^3:y=b^3:z=c^3
if x+y+z=i then print i;
后,程序却又能运行,输出结果了。
心想:难道使用乘方语句时,也有什么讲究,它只能对直接变量乘方,而不能对间接的变量乘方??
真得好想搞清这样的问题,也想搞清楚QBASIC在应用中是否还有这样类似的问题,如果不能给学生一个明确的答复,真的就成了误人子弟了。谢谢大家支持!
一个打印出所有的水仙花(指一个三位数,其各位数立方和等于该数)的数相关事例,我编写的程序如下:
cls
for i=100 to 999
a=i mod 10
b=i\10 mod 10
c=i\100
if a^3+b^3+c^3=i then print i;
next i
end
我认为这个程序没什么问题,但还是输入电脑运行一下,可是屏幕上没有任何输出,试过几次,结果依然如故。
在纳闷之余,把a^3+b^3+c^3=i 改成了 a*a*a+b*b*b+c*c*c=i 后,再次运行程序,却显示正确的结果。在思索a^3表示的是a的三次方,而a*a*a也是,却差别如此之大呢?
在百思不得齐解之时,试过许多关于a^3的问题都可以输出,而唯独此题却不能,但当再次对程序修改,把if a^3+b^3+c^3=i then print i;改成以下几行:
x=a^3:y=b^3:z=c^3
if x+y+z=i then print i;
后,程序却又能运行,输出结果了。
心想:难道使用乘方语句时,也有什么讲究,它只能对直接变量乘方,而不能对间接的变量乘方??
真得好想搞清这样的问题,也想搞清楚QBASIC在应用中是否还有这样类似的问题,如果不能给学生一个明确的答复,真的就成了误人子弟了。谢谢大家支持!