多載(Overloading)代表同樣的事物被運用在不同的用途上。在 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 每個位數之和
因此,
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
ProblemSetter: Sohel Hafiz
Special Thanks: Jane Alam Jan
沒有留言:
張貼留言