ZeroJudge K678: 肥余歷險記—(反數學城1)

肥余成功走出他迷路的路口,但是! 肥余沒有戰斗能力,他只能去數學城的商店購買木劍。

又但是! 他現在不在數學城 他在反數學城 。

肥余只能打敗反數學怪獸 才能走出反數學城!!!

肥余遇到在反數學城的第一隻怪獸是 —– 反加法獸!!!

範例測資

範例輸入範例輸出
第一行為小怪數量 (反加法獸)
然後重覆 (第一行) 次
輸入一個加法算式
和答案
答對輸出「yes」
答錯輸出「no」
3
1+1
2
2+4
5
5+8
4
yes
no
no

解題思路

使用字串來收加法的算式,跑字串的 For迴圈,宣告一個空的字串,每次都把目前字元加到空的字串中,如果目前字串是「+」,則將加起來的字串轉成整數並且將 字串.substr(目前位置 +1, 字串.length()) 也變成整數進行相加。

如果算出來的答案和輸入一樣,則輸出「yes」,反之則輸出「no」。

範例程式碼-ZeroJudge K678: 肥余歷險記—(反數學城1)

#include <iostream>
using namespace std;

int toint(string str)
{
    if (str.length() == 1) return int(str[0] - '0');
    return stoi(str);
}

int main() {
    cin.sync_with_stdio(0);
    cin.tie(0);
    int N;
    cin >> N;
    for (int i = 0; i<N; i++)
    {
        string str, tmp = "";
        cin >> str;
        int sum = 0;
        for (int j = 0; j<str.length(); j++)
        {
            if (str[j] == '+')
            {
                sum += toint(tmp);
                sum += toint(str.substr(j+1, str.length()));
                break;
            }
            tmp += str[j];
        }
        int ans;
        cin >> ans;
        if (sum == ans) cout << "yes\n";
        else cout << "no\n";
    }
}

//ZeroJudge K678
//Dr. SeanXD

發佈留言