Problem Description
猜数字游戏是gameboy最喜欢的游戏之一。游戏的规则是这样的:计算机随机产生一个四位数,然后玩家猜这个四位数是什么。每猜一个数,计算机都会告诉玩家猜对几个数字,其中有几个数字在正确的位置上。
比如计算机随机产生的数字为1122。如果玩家猜1234,因为1,2这两个数字同时存在于这两个数中,而且1在这两个数中的位置是相同的,所以计算机会告诉玩家猜对了2个数字,其中一个在正确的位置。如果玩家猜1111,那么计算机会告诉他猜对2个数字,有2个在正确的位置。
现在给你一段gameboy与计算机的对话过程,你的任务是根据这段对话确定这个四位数是什么。

Input
输入数据有多组。每组的第一行为一个正整数N(1<=N<=100),表示在这段对话中共有N次问答。在接下来的N行中,每行三个整数A,B,C。gameboy猜这个四位数为A,然后计算机回答猜对了B个数字,其中C个在正确的位置上。当N=0时,输入数据结束。

Output
每组输入数据对应一行输出。如果根据这段对话能确定这个四位数,则输出这个四位数,若不能,则输出”Not sure”。

Sample Input
6
4815 2 1
5716 1 0
7842 1 0
4901 0 0
8585 3 3
8555 3 2
2
4815 0 0
2999 3 3
0

Sample Output
3585
Not sure

思路 才开始看到这个题目 就想怎样去记录答案次数 去匹配每个答案及记录最大的 然后思来想去 这个方法不行 (可能是刷的题目太少的原因吧) 然后想到只有四为数字 直接枚举每个四位数字 去匹配每个机器回答的答案

AC代码

import java.util.Scanner;public class hdu1172 {/*** @param args*/class Node{int a;//猜的四位数字int b;//包含正确的数字int c;//正确位置正确数字}static Node node[]=new Node[105];static int n;public static void main(String[] args) {// TODO Auto-generated method stubScanner scan=new Scanner(System.in);hdu1172 hdu=new hdu1172();while((n=scan.nextInt())!=0){for(int i=1;i<=n;i++){Node node1=hdu.new Node();node1.a=scan.nextInt();node1.b=scan.nextInt();node1.c=scan.nextInt();node[i]=node1;}int count=0,result = 0;  boolean flag=true;  for(int i=1000;i<=9999;i++){//枚举每个四位数字for(int j=1;j<=n;j++){flag=check(j,i);if(!flag){break;}}if(flag){count++;result=i;}}if(count==1){//判断是否有多个数字符合匹配答案System.out.println(result);}else{System.out.println("Not sure");}}}private static boolean check(int k, int number) {// TODO Auto-generated method stubint count=0;int num1[]=new int[5];int num2[]=new int[5];boolean mark[]=new boolean[5];num1[1]=node[k].a/1000;  num1[2]=(node[k].a%1000)/100;  num1[3]=(node[k].a%100)/10;  num1[4]=(node[k].a%10);num2[1]=number/1000;  num2[2]=(number%1000)/100;  num2[3]=(number%100)/10;  num2[4]=(number%10); for(int i=1;i<=4;i++){//找出正确数字正确位置的个数if(num1[i]==num2[i]){count++;}}if(count!=node[k].c){return false;}//找出相同数字个数count=0;for(int i=1;i<=4;i++){for(int j=1;j<=4;j++){if(num1[i]==num2[j]&&!mark[j]){mark[j]=true;count++;break;}}}if(count!=node[k].b){return false;}return true;}}

hdu 1172(java版本)相关推荐

  1. 下载最新版本Maven 3.3.9 ,检测安装是否成功时发现Java版本JDK却低于1.7时报错

    下线最新版本Maven 3.3.9 ,检测安装是否成功时发现Java版本JDK却低于1.7时报错 cmd: mvn -v Exception in thread "main" ja ...

  2. linux 修改java版本_Linux 有问必答:如何在 Linux 中改变默认的 Java 版本

    提问:当我尝试在Linux中运行一个Java程序时,我遇到了一个错误.看上去像程序编译所使用的Java版本与我本地的不同.我该如何在Linux上切换默认的Java版本? 当Java程序编译时,编译环境 ...

  3. java jnlp被阻止_JNLP应使用特定的Java版本,但会出现错误结果

    我在这里面临一个问题.我想使用特殊版本来运行我们的 java webstart应用程序,但只需要一个jnlp. ("经过测试,- blabla我们不能使用新版本- blabla"随 ...

  4. Ubuntu/Debian 系统切换Java(JVM),修改Java版本,JAVA_HOME

    http://blog.mypapit.net/2007/10/how-to-switch-between-different-java-jvm-in-ubuntu-and-debian-gnu-li ...

  5. mac os x java_Mac OS X和多个Java版本

    守着一只汪 在Mac上管理多个Java版本的最简洁方法是使用Homebrew.在内Homebrew,使用:homebrew-cask 安装java的版本jenv 管理已安装的java版本如http:/ ...

  6. centos 更换java版本_centos7 更换jdk版本

    查看java版本   java -version 如果有java版本(如果没有直接看红色虚线以下的) 输入 rpm -qa | grep java会显示以下几条内容: ******* ******** ...

  7. 【错误记录】Android 编译时技术版本警告 ( 注解处理器与主应用支持的 Java 版本不匹配 )

    文章目录 一.报错信息 二.问题分析 三.解决方案 一.报错信息 在使用 Android 编译时技术 , 涉及 编译时注解 , 注解处理器 ; 开发注解处理器后 , 编译报如下警告 ; 该警告不会影响 ...

  8. 【Android APT】注解处理器 ( 配置注解依赖、支持的注解类型、Java 版本支持 )

    文章目录 一.注解处理器 依赖 编译时注解 二.设置 注解处理器 支持的注解类型 三.设置 注解处理器 支持的 Java 版本 四.博客资源 Android APT 学习进阶路径 : 推荐按照顺序阅读 ...

  9. 【SmartJob】【隔离装置】WEB/统计程序和隔离程序共享服务器时的JAVA版本冲突问题

    SmartJob.DmsWeb与SmartSys共享服务器容易引发Java版本冲突问题: Java版本不正确 UnsupportedClassVersionError Exception in thr ...

最新文章

  1. UVA 11020 - Efficient Solutions(set)
  2. JavaScript URL编码 代码片段记忆
  3. canal mysql多实例_canal搭建实例
  4. Swift -- 6.函数和闭包
  5. MATLAB拉格朗日插值
  6. 使用RichTextBox控件实现系统剪切板功能
  7. Android Studio 下使用git -- 个人,本地版本控制
  8. java中输入两个数组并显示_java-将输入存储在两个相关的数组中
  9. java编写人机聊天_无聊 写了个人机对话的小程序 哈哈!
  10. Python工作笔记002---PYTHON之DEF函数
  11. 不同尺寸SMA头介绍以及之间的区别
  12. IOS 腾讯微博开放平台 SDK 初体验
  13. MySQL的相关问题
  14. 2022.4.7学习笔记
  15. 树莓派4+普通机械硬盘+Netatalk搭建家用Nas+苹果TimeMachine
  16. OS学习笔记-15(清华大学慕课)处理机调度
  17. 第10章 大数据与云数据库管理
  18. 超快!三分钟学会用3DsMax制作波浪效果!大忙人的你也可以忙里偷闲学技术
  19. 初中晨读必看古诗名句
  20. CSS,font-family,好看常用的中文字体

热门文章

  1. 最新8款非常漂亮的免费英文字体
  2. 2.1.太极平台框架—表单介绍与使用
  3. XP硬盘安装Ubuntu 10.10系统
  4. 视在功率、功率因数、额定功率的初步了解
  5. 必达总线模式android,betech必达G5智能锁怎么设置自动上锁模式
  6. ❤️AI 从入门到精通❤️
  7. 最新设计工具最全讲解,设计大师一定要知道
  8. 【EC200U】GPS定位应用案例
  9. Windows 7系统安装图解
  10. 基于Node.js的博客文章管理系统设计与实现