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


angus.93321@gmail.com (bluemoon0321)

學校 : 國立科學工業園區實驗高級中學
編號 : 139711
來源 : [114.136.48.221]
最後登入時間 :
2021-08-21 11:35:29
a020. 身分證檢驗 | From: [114.34.78.134] | 發表日期 : 2021-02-05 22:52

#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)

學校 : 國立臺中科技大學
編號 : 97371
來源 : [60.250.9.66]
最後登入時間 :
2022-07-02 20:52:24
a020. 身分證檢驗 | From: [1.168.32.133] | 發表日期 : 2021-02-09 15:34

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

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

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


soyana66687@gmail.com (Dino\n)

學校 : 國立臺中科技大學
編號 : 97371
來源 : [60.250.9.66]
最後登入時間 :
2022-07-02 20:52:24
a020. 身分證檢驗 | From: [1.168.32.133] | 發表日期 : 2021-02-09 15:37

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

就AC啦~



 
ZeroJudge Forum