Board logo

標題: APCS 觀念題 10510 - 7 [打印本頁]

作者: 李泳霖    時間: 2022-6-11 08:53     標題: APCS 觀念題 10510 - 7

本帖最後由 李泳霖 於 2022-6-11 11:07 編輯

若 n 為正整數,下列程式三個迴圈執行完畢後 a 值將為何?
  1. int a=0, n;

  2. for (int i=1; i<=n; i=i+1)
  3.     for (int j=i; j<=n; j=j+1)
  4.         for (int k=1; k<=n; k=k+1)
  5.             a = a + 1;
複製代碼


答案是 (D)

若一時間找不到頭緒,可試著帶一個小數字進去,觀察其運作情形,譬如假設 n=3:

i  j  k
------
1 1 1
1 1 2
1 1 3
1 2 1
1 2 2
1 2 3
1 3 1
1 3 2
1 3 3

2 2 1
2 2 2
2 2 3
2 3 1
2 3 2
2 3 3

3 3 1
3 3 2
3 3 3

發現帶出來的數可分為三個群聚,假設最下方的群聚為一個單位,則由上而下為 3、2、1 個單位,總共有 (n+1)*n/2 個單位。而每個單位都會執行 n 次,故總共會執行 n*(n+1)*n/2 次。

另一種解法為先遮住最內層的迴圈,即可看出端倪,外層加中層的迴圈總共會執行 (n+1)*n/2 次,而每個最內層的迴圈都會執行 n 次,得解。
作者: 黃柏叡    時間: 2022-6-11 10:27

此帖僅作者可見
作者: 曾宥程    時間: 2022-6-11 10:34

此帖僅作者可見
作者: 李穎俊    時間: 2022-6-11 10:37

此帖僅作者可見
作者: 張淯祺    時間: 2022-6-11 11:06

此帖僅作者可見
作者: 王銘鴻    時間: 2022-6-11 11:06

此帖僅作者可見
作者: 陳羿安    時間: 2022-6-11 11:07

此帖僅作者可見
作者: 林羿丞    時間: 2022-6-11 11:07

此帖僅作者可見
作者: 郭哲維    時間: 2022-6-15 11:25

此帖僅作者可見




歡迎光臨 種子論壇 | 高雄市資訊培育協會學員討論區 (http://istak.org.tw/seed/) Powered by Discuz! 7.2