#25566:


720222@csc.pjhs.tyc.edu.tw (暗夜)

學校 : 不指定學校
編號 : 154378
來源 : [182.233.186.69]
最後登入時間 :
2024-01-05 15:16:04
a020. 身分證檢驗 | From: [114.25.125.162] | 發表日期 : 2021-06-02 13:06

 

/*   A=10 台北市    *I=34 嘉義市*    R=25 台南縣

     B=11 台中市      J=18 新竹縣       S=26 高雄縣

     C=12 基隆市      K=19 苗栗縣      T=27 屏東縣

     D=13 台南市      L=20 台中縣      U=28 花蓮縣

     E=14 高雄市      M=21 南投縣     V=29 台東縣

     F=15 台北縣      N=22 彰化縣    *W=32 金門縣*

     G=16 宜蘭縣   *O=35 新竹市*     X=30 澎湖縣

     H=17 桃園縣     P=23 雲林縣       Y=31 陽明山

                           Q=24 嘉義縣     *Z=33 連江縣*

     *'0'=48*

 

*/ 

#include<iostream>

 

using namespace std;

int main()

{

    char a,b[11];

    int sum=0,i;

    cin>>a;

    for (i=2; i<11; i++)

    cin>>b[i];

    b[0]=1;

    if(a=='I')

    {

        b[0]=3;

        b[1]=4;

    }

    else if(a=='O')

    {

        b[0]=3;

        b[1]=5;

    }

    else if(a=='W')

    {

        b[0]=3;

        b[1]=2;

    }

    else if(a=='Z')

    {

        b[0]=3;

        b[1]=3;

    }

    else if (a<='H')

        b[1]=a-'A';

    else if (a<='N')

        b[1]=a-'A'-1;

    else if (a<='V')

        b[1]=a-'A'-2;

    else if (a<='Y')

        b[1]=a-'A'-3;

    while(b[1]>9)

    {

        b[0]+=1;

        b[1]-=10;

    }

    for (i=2; i<10; i++)

            sum+=(b[i]-48)*(10-i);

    sum=sum+b[0]+b[1]*9+b[10]-48;

    if(sum%10==0)

        cout<<"real";

    else

        cout<<"fake";

 

 

 }

 
#26708: Re:C++


d11221174@gmail.com (王邦聖)

學校 : 不指定學校
編號 : 160335
來源 : [223.139.85.98]
最後登入時間 :
2021-08-22 04:48:03
a020. 身分證檢驗 | From: [223.139.85.98] | 發表日期 : 2021-08-21 04:03

 

/*   A=10 台北市    *I=34 嘉義市*    R=25 台南縣

     B=11 台中市      J=18 新竹縣       S=26 高雄縣

     C=12 基隆市      K=19 苗栗縣      T=27 屏東縣

     D=13 台南市      L=20 台中縣      U=28 花蓮縣

     E=14 高雄市      M=21 南投縣     V=29 台東縣

     F=15 台北縣      N=22 彰化縣    *W=32 金門縣*

     G=16 宜蘭縣   *O=35 新竹市*     X=30 澎湖縣

     H=17 桃園縣     P=23 雲林縣       Y=31 陽明山

                           Q=24 嘉義縣     *Z=33 連江縣*

     *'0'=48*

 

*/ 

#include

 

using namespace std;

int main()

{

    char a,b[11];

    int sum=0,i;

    cin>>a;

    for (i=2; i<11; i++)

    cin>>b[i];

    b[0]=1;

    if(a=='I')

    {

        b[0]=3;

        b[1]=4;

    }

    else if(a=='O')

    {

        b[0]=3;

        b[1]=5;

    }

    else if(a=='W')

    {

        b[0]=3;

        b[1]=2;

    }

    else if(a=='Z')

    {

        b[0]=3;

        b[1]=3;

    }

    else if (a<='H')

        b[1]=a-'A';

    else if (a<='N')

        b[1]=a-'A'-1;

    else if (a<='V')

        b[1]=a-'A'-2;

    else if (a<='Y')

        b[1]=a-'A'-3;

    while(b[1]>9)

    {

        b[0]+=1;

        b[1]-=10;

    }

    for (i=2; i<10; i++)

            sum+=(b[i]-48)*(10-i);

    sum=sum+b[0]+b[1]*9+b[10]-48;

    if(sum%10==0)

        cout<<"real";

    else

        cout<<"fake";

 

 

 }

請問為什麼要減48

 

 
#26709: Re:C++


fire5386 (becaidorz)

學校 : 國立清華大學
編號 : 115822
來源 : [140.114.253.77]
最後登入時間 :
2024-11-13 14:54:03
a020. 身分證檢驗 | From: [111.243.29.93] | 發表日期 : 2021-08-21 06:56

減掉'0'的ascii code,

把char型的數字換成int

例如:

'0'-'0' = 0

'1'-'0' = 1

'2'-'0' = 2

.

.

.

'9'-'0' = 9

 
ZeroJudge Forum