UVA - 340 Master-Mind Hints
题目大意。输入一行数 然后 在输入一行数 输出 跟第一行位置且数字相同的个数 输出数字相同位置不同的个数 (不能包括 位置相同的数)
求该字符串计数总数
解题思路:先将位置且数字相同的找出来 然后 令这些数失效 之后在寻找数字相同打 找道后同样令其 失效 再循环寻找
#include <cstdio>
#include <cstring>
int main() {
int N;
scanf("%d", &N);
int a[10000];
int b[10000];
int c[10000];
int t = 1;
while ( N != 0) {
for (int i = 0; i < N; i++) {
scanf("%d", &a[i]);
}
printf("Game %d:\n", t);
t++;
while (1) {
for (int i = 0; i < N; i++) {
c[i] = a[i];
}
int x = 0,y = 0;
for (int i = 0; i < N; i++)
scanf("%d", &b[i]);
if (b[0] == 0) break;
for ( int i = 0; i < N; i++)
if (c[i] == b[i] ) {
x++;
c[i] = 0;
b[i] = 10;
}
for (int i = 0; i < N; i++)
for (int j = 0; j < N; j++)
if (b[i] == c[j]) {
b[i] = 10;
c[j] = 0;
y++;
break;
}
printf(" (%d,%d)\n", x, y);
}
scanf("%d", &N);
}
}