d043: 11032 - Function Overloading
Tags :
Accepted rate : 63人/129人 ( 49% ) [非即時]
評分方式:
Tolerant

最近更新 : 2008-12-06 14:09

Content

所謂「多載」就是將相同的名稱用在不同的目的上。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

Input

輸入檔的第一行有一個代表測試筆數的整數。每筆測試資料一行。這一行可以含有一個或兩個整數。所有的整數都在 [1, 10000000] 的範圍內。

測試總筆數會少於 1000

如果一筆輸入有兩個整數,那麼會呼叫第一個函數,如果只有一個整數,則呼叫第二個函數。這些整數會以參數的形式傳給對應的函數。

Output
對於每筆測試,先輸出測試編號,然後是對應的函數的回傳值。
Sample Input
3
101
1 9
20
Sample Output
Case 1: 91
Case 2: 5
Case 3: -1
測資資訊:
記憶體限制: 512 MB
公開 測資點#0 (100%): 3.0s , <1M
Hint :
Tags:
出處:
UVa11032 [管理者:
snail (蝸牛)
]


ID User Problem Subject Hit Post Date
沒有發現任何「解題報告」