迴圈
輸入密碼 及 測試次數
迴圈
初始化
先判別有無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]]++;
}
留言列表