#8307: 找不出問題 測資點 line 9??


m010114pups (阿毛)

學校 : 不指定學校
編號 : 32616
來源 : [1.162.77.162]
最後登入時間 :
2018-01-08 22:38:32
a020. 身分證檢驗 | From: [140.112.196.40] | 發表日期 : 2013-10-08 20:58

#include <iostream>
#include <string>
using namespace std;
int cvt(char x){
    int b;
    b=x-57;
    return b;
}
int main(){
    string str;
    int eng=0;
    while(cin>>str){
        eng+=(cvt(str[0])%10*9+cvt(str[0])/10);
        for(int i=1;i<=8;i++){
            eng+=(str[i]-48)*(9-i);
        }
        eng+=(str[9]-48);
        if(eng%10==0)cout<<"real\n";
        else cout<<"fake\n";
        str.clear();
        eng=0;
    }
    return 0;
#8308: Re:找不出問題 測資點 line 9??


m010114pups (阿毛)

學校 : 不指定學校
編號 : 32616
來源 : [1.162.77.162]
最後登入時間 :
2018-01-08 22:38:32
a020. 身分證檢驗 | From: [140.112.196.40] | 發表日期 : 2013-10-08 21:04

突然想到可以不用寫那cvt()函數,
但還是過不了阿~


 
#8311: Re:找不出問題 測資點 line 9??


rosynirvana (rosynirvana)

學校 : 不指定學校
編號 : 33880
來源 : [182.114.3.244]
最後登入時間 :
2017-07-24 00:02:04
a020. 身分證檢驗 | From: [58.247.230.182] | 發表日期 : 2013-10-09 01:41

#include
#include
using namespace std;
int cvt(char x){
    int b;
    b=x-57;
    return b;
}
int main(){
    string str;
    int eng=0;
    while(cin>>str){
        eng+=(cvt(str[0])%10*9+cvt(str[0])/10);
        for(int i=1;i<=8;i++){
            eng+=(str[i]-48)*(9-i);
        }
        eng+=(str[9]-48);
        if(eng%10==0)cout<<"real\n";
        else cout<<"fake\n";
        str.clear();
        eng=0;
    }
    return 0;
}

似乎是读题读错了,第一个字母到数字的映射不是均匀的  
ZeroJudge Forum