d043. 11032 - Function Overloading
標籤 :
通過比率 : 118人/212人 ( 56% ) [非即時]
評分方式:
Tolerant

最近更新 : 2023-08-14 10:03

內容

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

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

輸出說明

對於每筆測試,先輸出測試編號,然後是對應的函數的回傳值。

範例輸入 #1
3
101
1 9
20
範例輸出 #1
Case 1: 91
Case 2: 5
Case 3: -1
測資資訊:
記憶體限制: 512 MB
公開 測資點#0 (100%): 3.0s , <1M
提示 :
標籤:
出處:
UVa11032 [管理者: snail (蝸牛) ]

本題狀況 本題討論 排行

編號 身分 題目 主題 人氣 發表日期
沒有發現任何「解題報告」