計算機概論、大意(資訊科學概論,電腦常識,電子計算機概論)題庫下載題庫

上一題

26 針對下列 C 遞迴函式:
若以下列方式呼叫,將產生何種輸出? printf("%d", fn(10, 5))
(A)2
(B) 15
(C) 50
(D) 100000



答案:登入後觀看
難度: 困難

10
 【站僕】摩檸Morning:有沒有達人來解釋一下?
倒數 11時 ,已有 1 則答案
考試客 大四上 (2024/09/28):

這個函式 fn(a, b) 使用遞迴計算,具體步驟如下:

  • 如果 b=0,函式回傳 1。
  • 如果 b 是偶數,則遞迴呼叫自己,將 b 除以 2,然後回傳結果的平方。
  • 如果 b 是奇數,則回傳 a×fn(a,b−1)。

逐步分析 fn(10, 5):

  1. fn(10, 5):因為 b=5 是奇數,所以 10×fn(10,4)

  2. fn(10, 4):因為 b=4 是偶數,所以 fn(10,2) 並將結果平方

  3. fn(10, 2):因為 b=2 是偶數,所以 fn(10,1) 並將結果平方

  4. fn(10, 1):因為 b=1 是奇數,所以 10×fn(10,0)

  5. fn(10, 0):因為 b=0,所以回傳 1

計算結果:

  • fn(10,0)=1
  • fn(10,1)=10×1=10
  • fn(10,2)=102=100
  • fn(10,4)=1002 =10000
  • fn(10,5)=10×10000 =100000
考試提醒:這題不好算,選擇題碰到建議先跳著寫別的題目,最後再回來慢慢解。
3個讚
檢舉


26 針對下列 C 遞迴函式: 若以下列方式呼叫,將產生何種輸出? printf..-阿摩線上測驗