【題解】ZeroJudge c290: APCS 2017-0304-1秘密差

【題目敘述】https://zerojudge.tw/ShowProblem?problemid=c290
【解題想法】輸入數字的位數可能高達 1000,以 string 儲存讀入測資,再分別處理奇偶位數的數字。

#include <iostream>
using namespace std;

int main(){
    int even = 0, odd = 0;
    string s;
    cin >> s;
    for (int i=0; i<s.size(); i++){
        if (i % 2){
            odd += s[i] - '0';
        } else {
            even += s[i] - '0';
        }
    }
    cout << abs(even - odd) << endl;

    return 0;
}
#include <iostream>
using namespace std;
 
int main(){
    int even = 0, odd = 0;
    string s;
    cin >> s;
    for (int i=0; i<s.size(); i+=2){
        even += s[i] - '0';
    }
    for (int i=1; i<s.size(); i+=2){
        odd += s[i] - '0';
    }
    
    cout << abs(even - odd) << endl;
 
    return 0;
}

Python code

while True:
    try:
        a = 0
        b = 0
        numstr = input()
        for i in range(len(numstr)):
            if i % 2 == 0:
                a += int(numstr[i])
            else:
                b += int(numstr[i])
        print(abs(a-b))
    except:
        break
分享本文 Share with friends