uva340 Master-Mind Hints

题目:输入N个数字。然后再输入任意组N个数字。判断两个数字:1 位置完全一致  判断完1后 2:位置不一致但是在两组中都存在

注意:1  我的想法主要是判断完后删除对应数字,听了同学思路发现根本不需要,因为数字范围是1~9,所以判断完置为0即可

2 在判断第二类数字,查找时,找到后及时break出for循环,否则会重复计算

#include
#include
#include
#include
#include
#include
#include
#include 
#include 
#include 
#include 
#include 
#define N 1000
using namespace std;

int main()
{
    int length;
    int num = 1;
    while (cin>>length && length) {
        
        //输出
        cout<<"Game "<>original[i];
        }
        int original_temp[N]={0};
        for(int i = 0 ;i < length; i++){
            original_temp[i]=original[i];
        }
        int match[N]={0};
        while(1){
            for(int i = 0 ;i < length; i++){
                original[i]=original_temp[i];
            }
            for(int i = 0 ;i < length; i++){
                cin>>match[i];
            }
            if(match[0]==0)break;
            //判断第一个数
            int no1=0;
            for(int i = 0 ;i < length; i++){
                if(original[i] == match[i]){
                    original[i] = 0;
                    match[i] = 0;
                    no1++;
                }
            }
            //判断第二个数
            int no2=0;
            for (int i = 0 ;i < length; i++) {
                if (original[i] == 0) {
                    continue;
                }
                int temp = original[i];
                for(int j = 0 ;j < length; j++){
                    if (match[j] == temp) {
                        original[i] = 0;
                        match[j] = 0;
                        no2++;
                        break;
                    }
                }
            }//for
            //输出
            cout<<"    ("<


你可能感兴趣的:(uva)