#4425: 測資有錯嗎?


n124345679976 (西里亞沙.伊里爾蓋亞特米亞)

學校 : 國立彰化高級中學
編號 : 13435
來源 : [140.113.170.86]
最後登入時間 :
2018-10-31 09:54:21
a020. 身分證檢驗 | From: [220.140.67.239] | 發表日期 : 2010-10-23 00:09

我這樣打好像沒有錯(去找了身分證製造機來測都過說...)

#include<iostream>
using namespace std;
int main()
{
 char a,k[9];
 while(cin>>a>>k)
 {
  int f,j=0,l;
  f=(a-55-(a>73)-(a>79)-(a>87)+(a==73)*16+(a==79)*12+(a==87)*2+(a==90));
     l=(f%10)*9+f/10;
  for(int i=0;i<8;i++)
  j+=(k[i]-48)*(8-i);
  if((l+j+k[8]-48)%10==0)
  cout<<"real"<<endl;
  if((l+j+k[8]-48)%10!=0)
  cout<<"fake"<<endl;
 }
}

WA很多次想說乾脆來看看到底是哪個身分證字號錯了...
   
#include<iostream>
using namespace std;
int main()
{
 char a,k[9];
 while(cin>>a>>k)
 {
  cout<<a;
  int f,j=0,l;
  f=(a-55-(a>73)-(a>79)-(a>87)+(a==73)*16+(a==79)*12+(a==87)*2+(a==90));
     l=(f%10)*9+f/10;
  for(int i=0;i<8;i++)
  j+=(k[i]-48)*(8-i);
  if((l+j+k[8]-48)%10==0)
  cout<<"real"<<endl;
  if((l+j+k[8]-48)%10!=0)
  cout<<"fake"<<endl;
 }
}
   
就是在中間加了一行cout<<a;

結果

與正確輸出不相符(line:1)
您的答案為: fake
正確答案為: real

該不會沒有a吧= =...

 
ZeroJudge Forum