#31600: 找不到problem(應該是小問題)


jason096727@gmail.com (Jason Ho)

學校 : 高雄市苓雅區福東國民小學
編號 : 189939
來源 : [150.116.71.76]
最後登入時間 :
2023-07-15 21:32:51
a271. 彩色蘿蔔 -- 兔子 | From: [150.116.71.227] | 發表日期 : 2022-08-09 21:39

#include <bits/stdc++.h>

using namespace std;

int main()
{
    int num;
    while (cin >> num){
        for (int i=1; i<=num; i++){
            int x, y, z, w, n, m, count=0, b=0;
            cin >> x >> y >> z >> w >> n >> m;
            string s;
            getline(cin,s);
            getline(cin,s);
            if (s.length()==0){
                cout << m << '\n';
                continue;
            }
            for (int j=0; j<=s.length(); j=j+2){
                m-=count*n;
                if (m<0){
                    cout << "bye~Rabbit" << '\n';
                    b=1;
                    break;
                }
                if (s[j]=='1'){
                    m+=x;
                }
                else if (s[j]=='2'){
                    m+=y;
                }
                else if (s[j]=='3'){
                    m-=z;
                }
                else if (s[j]=='4'){
                    m-=w;
                    count++;
                }
            }
            if (b==0){
                cout << m << 'g' << '\n';
            }
        }
    }

    return 0;
}

 
#31670: Re: 找不到problem(應該是小問題)


cges30901 (cges30901)

學校 : 不指定學校
編號 : 30877
來源 : [101.136.203.77]
最後登入時間 :
2024-04-07 15:34:14
a271. 彩色蘿蔔 -- 兔子 | From: [101.137.58.63] | 發表日期 : 2022-08-13 16:45


            for (int j=0; j<=s.length(); j=j+2){


找了好久終於找到問題了。

可能是因為測資中有多餘的空格,所以不能這樣寫

你可以把j=j+2改成j++,然後下面再判斷j是否是空格

 
#31686: Re: 找不到problem(應該是小問題)


jason096727@gmail.com (Jason Ho)

學校 : 高雄市苓雅區福東國民小學
編號 : 189939
來源 : [150.116.71.76]
最後登入時間 :
2023-07-15 21:32:51
a271. 彩色蘿蔔 -- 兔子 | From: [150.116.71.227] | 發表日期 : 2022-08-14 13:38


            for (int j=0; j<=s.length(); j=j+2){


找了好久終於找到問題了。

可能是因為測資中有多餘的空格,所以不能這樣寫

你可以把j=j+2改成j++,然後下面再判斷j是否是空格

辛苦了謝謝
後來我還有發現一些問題

#include <bits/stdc++.h>

using namespace std;

int main()
{
    int num;
    while (cin >> num){
        for (int i=1; i<=num; i++){
            int x, y, z, w, n, m, count=0, b=0;
            cin >> x >> y >> z >> w >> n >> m;
            string s;
            getline(cin,s);
            getline(cin,s);
            if (s.length()==0){
                cout << m << 'g' << '\n';
                continue;
            }
            for (int j=0; j<s.length(); j++){
                if (s[j] != ' '){
                    m-=count*n;
                    if (m<0){
                        cout << "bye~Rabbit" << '\n';
                        b=1;
                        break;
                    }
                    if (s[j]=='1'){
                        m+=x;
                    }
                    else if (s[j]=='2'){
                        m+=y;
                    }
                    else if (s[j]=='3'){
                        m-=z;
                    }
                    else if (s[j]=='4'){
                        m-=w;
                        count++;
                    }
                    if (m<0){
                        cout << "bye~Rabbit" << '\n';
                        b=1;
                        break;
                    }
                }
            }
            if (b==0){
                cout << m << 'g' << '\n';
            }
        }
    }

    return 0;
}

 
ZeroJudge Forum