所謂「多載」就是將相同的名稱用在不同的目的上。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
| 編號 | 身分 | 題目 | 主題 | 人氣 | 發表日期 |
|
沒有發現任何「解題報告」
|
|||||