迴圈

輸入id

計算check值

倘若加入此英文字母滿足判別方式(a020)

先記錄下來

輸出記錄下來的英文字母

 

#include <iostream>
#include <cstring>
using namespace std;

char table[26] = {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H',
                  'J', 'K', 'L', 'M', 'N', 'P', 'Q', 'R',
                  'S', 'T', 'U', 'V', 'X', 'Y', 'W', 'Z',
                  'I', 'O'};

 

 

char alpha[26] = {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H',
                  'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P',
                  'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X',
                  'Y', 'Z'};

bool candidate[26];

int main()
{
    int check;
    string id;

    while(cin >> id)
    {
        check = 0;
        for(int i = 0; i<8; i++)
            check += (id[i] - '0')*(8-i);
        check += id[8] - '0';

        memset(candidate, false, 26);
        for(int i = 10; i<=35; i++)
            if( (check + i/10 + (i%10)*9) % 10 == 0)
                candidate[(int)table[i-10] - 65] = true;

        for(int i = 0; i<26; i++)
            if(candidate[i])
                cout << alpha[i];

        cout << endl;
    }

    return 0;
}
 

 

arrow
arrow
    全站熱搜

    大神(偽) 發表在 痞客邦 留言(0) 人氣()