环境:VFP9
问题:编程序求 2+4+8+16+32+…这样的数之和。如果累加数大于 980 时,则程序终止并输出结果
以下代码能正确输出结果:
SET talk OFF
CLEAR
s=0
n=1
DO WHILE s <= 980
s=2^n+s
n=n+1
ENDDO
?s
SET TALK ON
CANCEL
以下代码不能正确输出结果:
SET talk OFF
CLEAR
s=0
n=1
DO WHILE s <= 980
n=2^n
s=n+s
n=n+1
ENDDO
?s
SET TALK ON
CANCEL
我是个半吊子,不知为何会有这样的差别
1
dingz 2017-03-13 11:39:23 +08:00 1
第二段 N 存了临时结果后,已经不是期望值了吧
第二段正确的应该再引入一个变量比如 M m=2^n s=m+s n=n+1 才与第一段是一样吧 |