#24316: 95% @@ 錯第17個 請問錯在哪


angus.93321@gmail.com (bluemoon0321)


#include<bits/stdc++.h>

using namespace std;

int main(){

    string s;

    cin>>s;

    int a[10];

    if(s[0]<'H') a[0]=s[0]-'A'+10;

    else if(s[0]=='I') a[0]=34;

    else if(s[0]>='J'&&s[0]<='N') a[0]=s[0]-'J'+18;

    else if(s[0]=='O') a[0]=35;

    else if(s[0]>='P'&&s[0]<='V') a[0]=s[0]-'P'+23;

    else if(s[0]=='W') a[0]=32;

    else if(s[0]=='X') a[0]=30;

    else if(s[0]=='Y') a[0]=31;

    else if(s[0]=='Z') a[0]=33;

    for(int i=1;i<10;i++){

        a[i]=s[i]-'0';

    }

    int total=0;

    int sum=8;

    total+=a[0]/10+a[0]%10*9;

    for(int i=1;i<9;i++){

            total+=a[i]*sum;

            sum--;

    }

    total+=a[9];

    if(total%10==0) cout<<"real";

    else cout<<"fake";

 

}

#24365: Re:95% @@ 錯第17個 請問錯在哪


soyana66687@gmail.com (Dino\n)


我看到 if(s[0]<'H') a[0]=s[0]-'A'+10;

如果輸入的英文字母剛好是H,程式似乎無法處理

#24366: Re:95% @@ 錯第17個 請問錯在哪


soyana66687@gmail.com (Dino\n)


將程式改為if(s[0]<'I') a[0]=s[0]-'A'+10;

就AC啦~