迴圈

輸入密碼 及 測試次數

迴圈

初始化

先判別有無A的個數

再判別B的個數

(此判別方式可少一層迴圈)

輸出

 

 

#include <cstdio>
#include <cstring>

 

 

using namespace std;

void init(int test[], int codeNum[], bool codeCheck[]);

int main()
{
    int code[4];
    int test[4];
    int codeNum[10];
    bool codeCheck[4];
    int A, B;
    int n;

    while(scanf("%d%d%d%d%d", &code[0], &code[1], &code[2], &code[3], &n)!=EOF)
    {
        while(n--)
        {
            init(test, codeNum, codeCheck);

            A = B = 0;
            for(int i = 0; i<4; i++)
                if(code[i] == test[i])
                {
                    codeCheck[i] = false;
                    codeNum[code[i]]--;
                    A ++;
                }

            for(int i = 0; i<4; i++)
                if(codeCheck[i] && codeNum[code[i]])
                {
                    codeNum[code[i]]--;
                    B++;
                }

            printf("%dA%dB\n", A, B);
        }
    }
    return 0;
}

void init(int test[], int codeNum[], bool codeCheck[])
{
    scanf("%d%d%d%d", &test[0], &test[1], &test[2], &test[3]);

    memset(codeCheck, true, 4);
    memset(codeNum, 0, 10*sizeof(int));

    for(int i = 0; i<4; i++)
        codeNum[test[i]]++;
}
 

arrow
arrow
    全站熱搜

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