uva340 Master-Mind Hints

来源:互联网 发布:举报学校被劝退 知乎 编辑:程序博客网 时间:2024/04/23 14:29

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

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

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

#include<stdio.h>#include<stdlib.h>#include<string.h>#include<string>#include<cstdio>#include<iostream>#include<math.h>#include <map>#include <vector>#include <algorithm>#include <sstream>#include <queue>#define N 1000using namespace std;int main(){    int length;    int num = 1;    while (cin>>length && length) {                //输出        cout<<"Game "<<num++<<":"<<endl;        int original[N]={0};        for(int i = 0 ;i < length; i++){            cin>>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<<"    ("<<no1<<","<<no2<<")"<<endl;        }//while(1)    }    return 0;}/* 4 1 3 5 5 4 3 3 5 1 1 2 3 6 5 5 1 6 1 3 5 1 3 5 5 0 0 0 0 10  1 2 2 2 4 5 6 6 6 9  1 2 3 4 5 6 7 8 9 1  1 1 2 2 3 3 4 4 5 5  1 2 1 3 1 5 1 6 1 9  1 2 2 5 5 5 6 6 6 7  0 0 0 0 0 0 0 0 0 0  0 /////// 10 0 2 0 0 4 5 6 6 6 9 0 1 0 0 3 3 4 4 5 5 1 1 2 2 3 3 4 4 5 5 0 0 0 0 0 0 0 0 0 0 0 */


0 0
原创粉丝点击