如何在 gwbasic 中编写将 1 到 100 的自然数相加的程序?
How to write a program in gwbasic for adding the natural numbers for 1 to 100?
我正在尝试编写一个程序,用于将 1 到 n (1 + 2 + 3 + ... + n) 的自然数相加。但是,当我使用 if
语句时,总和显示为 1。当我使用 for-next
语句时,出现了我不理解的语法错误。
if
:
30 let s = 0
40 let i = 1
50 s = s + i
60 i = i + 1
70 if i<=n, then goto 50
80 print s
for-next
:
30 let i, s
40 s = 0
50 for i = 1 to n
60 s = s + i
70 next i
80 print n
- 当我取n=10时,
if
语句代码给出的结果是1,但应该是55。
- 当我尝试使用
for-next
语句时,它没有给出结果说 30 中存在语法错误。
为什么会这样?
以下代码适用于此 online Basic interpreter。
10 let n = 100
30 let s = 0
40 let i = 1
50 s = s + i
60 i = i + 1
70 if i <= n then goto 50 endif
80 print s
我在标记为 10 的行上初始化了 n
,删除了标记为 70 的行上的逗号并在同一行上添加了一个 endif
。
这是 for-next
版本:
30 let n = 100
40 let s = 0
50 for i = 1 to n
60 s = s + i
70 next i
80 print s
(顺便说一下,前n
个自然数的和是n(n+1)/2
:
10 let n = 100
20 let s = n * (n + 1) / 2
30 print s
)
Why is this happening? Where am I mistaking?
30 let s = 0
40 let i = 1
50 s = s + i
60 i = i + 1
70 if i<=n, then goto 50
80 print s
修复 #1:初始化变量 'n':
20 let n = 10
修复 #2:从第 70 行删除逗号:
70 if i<=n then goto 50
30 let i, s
40 s = 0
50 for i = 1 to n
60 s = s + i
70 next i
80 print n
修复 #1:初始化变量 'n':
30 let n = 10
修复 #2:打印 's' 而不是 'n':
80 print s
我正在尝试编写一个程序,用于将 1 到 n (1 + 2 + 3 + ... + n) 的自然数相加。但是,当我使用 if
语句时,总和显示为 1。当我使用 for-next
语句时,出现了我不理解的语法错误。
if
:
30 let s = 0
40 let i = 1
50 s = s + i
60 i = i + 1
70 if i<=n, then goto 50
80 print s
for-next
:
30 let i, s
40 s = 0
50 for i = 1 to n
60 s = s + i
70 next i
80 print n
- 当我取n=10时,
if
语句代码给出的结果是1,但应该是55。 - 当我尝试使用
for-next
语句时,它没有给出结果说 30 中存在语法错误。
为什么会这样?
以下代码适用于此 online Basic interpreter。
10 let n = 100
30 let s = 0
40 let i = 1
50 s = s + i
60 i = i + 1
70 if i <= n then goto 50 endif
80 print s
我在标记为 10 的行上初始化了 n
,删除了标记为 70 的行上的逗号并在同一行上添加了一个 endif
。
这是 for-next
版本:
30 let n = 100
40 let s = 0
50 for i = 1 to n
60 s = s + i
70 next i
80 print s
(顺便说一下,前n
个自然数的和是n(n+1)/2
:
10 let n = 100
20 let s = n * (n + 1) / 2
30 print s
)
Why is this happening? Where am I mistaking?
30 let s = 0 40 let i = 1 50 s = s + i 60 i = i + 1 70 if i<=n, then goto 50 80 print s
修复 #1:初始化变量 'n':
20 let n = 10
修复 #2:从第 70 行删除逗号:
70 if i<=n then goto 50
30 let i, s 40 s = 0 50 for i = 1 to n 60 s = s + i 70 next i 80 print n
修复 #1:初始化变量 'n':
30 let n = 10
修复 #2:打印 's' 而不是 'n':
80 print s