【ACM】UVA - 340 Master-Mind Hints(一定要好好学英语...)

https://vjudge.net/problem/UVA-340

N  表示  密码的个数

第一行是正确的密码

下面的行直到N个0之前,都是猜测的序列,输出的括号(A,B)

A表示对应位置与密码相符合的个数,B表示出现在序列中的数字但是位置不对

另设一个C表示 两个序列中都出现的数字的个数(那么C只有两种情况,一个就是在对应位置上(即A),另一种就是不在对应位置上(即B)) C = A + B

输出的括号就可以转换成 (A,C - A)


#include 
#include 
#include 
#include 
using namespace std;

int a[1010];
int b[1010];

int main ()
{
	int i,j,N,cnt = 0;
	while(scanf("%d",&N)!=EOF && N)
	{
		printf("Game %d:\n",++cnt);
		for(i=0;iC2)
					C += C2;
				else
					C += C1;
			}
			printf("    (%d,%d)\n",A,C-A);			
		}
	} 
	return 0;
} 

 

你可能感兴趣的:(OJ)