所謂「多載」就是將相同的名稱用在不同的目的上。C++ 允許函數的多載。這意謂著相同的函數名稱可以用來產生許多執行不同工作的函數。
考慮以下兩個名稱相同,但有參數個數不同的函數。
int fun(int a, int b) { int ans = 0; int i, j, cnt; for(i=a; i<=b; i++) { cnt = 0; for(j=1; j<=i; j++) { if( j + sod(j) == i ) cnt++; } if( cnt == 0 ) ans++; } return ans; } int fun(int a) { int i; for(i=1; i<=a; i++){ if( i + sod(i) == a ){ return i; } } return -1; }
其中 sod(n) = n 各位數的和 (sum of digits of n)。
因此,
sod(13) = 1 + 3 = 4 而
sod(204) = 2 + 0 + 4 = 6。
輸入檔的第一行有一個代表測試筆數的整數。每筆測試資料一行。這一行可以含有一個或兩個整數。所有的整數都在 [1, 10000000] 的範圍內。
測試總筆數會少於 1000。
如果一筆輸入有兩個整數,那麼會呼叫第一個函數,如果只有一個整數,則呼叫第二個函數。這些整數會以參數的形式傳給對應的函數。
對於每筆測試,先輸出測試編號,然後是對應的函數的回傳值。
3 101 1 9 20
Case 1: 91 Case 2: 5 Case 3: -1
編號 | 身分 | 題目 | 主題 | 人氣 | 發表日期 |
沒有發現任何「解題報告」
|