程式設計-手寫題 - 特考

Table of Contents

[考題] 國考歷屆考題與考題觀念討論(書裡看到的選這個)請附上想法、出處

出處: 程式設計概要精修 向宏

[92 地方特考]

下列程式輸出為何?

CLS
S = 0
FOR K = 1 TO 10
FOR I = 0 TO (K - 1)
FOR J = 0 TO (K - 1)
IF I < > J THEN S = S + 1
NEXT J
NEXT I
NEXT K
PRINT S
END

[解答]

當 K = 1 時, I 與 J 迴圈都只執行 1 次, 其中 I = J 有 1 次, S 為 0 。
當 K = 2 時, I 迴圈執行 2 次, J 迴圈執行 4 次, 其中 I = J 有 2 次, S 為 2。
當 K = 3 時, I 迴圈執行 3 次, J 迴圈執行 9 次, 其中 I = J 有 3 次,
S 為 2 + 6 = 8。
.
.
.
當 K = n 時, I 迴圈執行 n 次, J 迴圈執行 (n平方) 次, 其中 I = J 有 n 次,
S 增加 (n平方 - n)

S = n (n+1) (2n+1) / 6-n (n+1) / 2
= 10 * 11 * 21 / 6-10 * 11 / 2
= 385 - 55
= 330

---------------------------------------

我自己算出來的 S 為 55,
因為 K = 1 時, I = J 有 1 次, 所以 S = 0 + 1 = 1,
K = 2 時, I = J 有 2 次, 所以 S = 1 + 1 = 2
S = 2 + 1 = 3,
.
.
.

以此類推, S = 0 + 1 + 2 + ... + 10 = 55



請問我的想法有錯嗎?

書本的答案是對的嗎?

謝謝!

--

All Comments

Regina avatarRegina2013-10-04
下方幫你解釋~不懂再發問~
Emma avatarEmma2013-10-06
你錯的點在不等於才要+
Hedda avatarHedda2013-10-09
所以 I< >J 是指 I不等於J 囉?