hdu1172 猜数字(java)
2017-10-29 21:27
309 查看
题意:
/**
* @param args
* 猜数字游戏是gameboy最喜欢的游戏之一。游戏的规则是这样的:
* 计算机随机产生一个四位数,然后玩家猜这个四位数是什么。
* 每猜一个数,计算机都会告诉玩家猜对几个数字,其中有几个数字在正确的位置上。
比如计算机随机产生的数字为1122。如果玩家猜1234,
因为1,2这两个数字同时存在于这两个数中,
而且1在这两个数中的位置是相同的,所以计算机会告诉玩家猜对了2个数字,
其中一个在正确的位置。如果玩家猜1111,那么计算机会告诉他猜对2个数字,有2个在正确的位置。
现在给你一段gameboy与计算机的对话过程,你的任务是根据这段对话确定这个四位数是什么。
*/
直接根据规则进行判断就行
/**
* @param args
* 猜数字游戏是gameboy最喜欢的游戏之一。游戏的规则是这样的:
* 计算机随机产生一个四位数,然后玩家猜这个四位数是什么。
* 每猜一个数,计算机都会告诉玩家猜对几个数字,其中有几个数字在正确的位置上。
比如计算机随机产生的数字为1122。如果玩家猜1234,
因为1,2这两个数字同时存在于这两个数中,
而且1在这两个数中的位置是相同的,所以计算机会告诉玩家猜对了2个数字,
其中一个在正确的位置。如果玩家猜1111,那么计算机会告诉他猜对2个数字,有2个在正确的位置。
现在给你一段gameboy与计算机的对话过程,你的任务是根据这段对话确定这个四位数是什么。
*/
直接根据规则进行判断就行
package dfs; import java.util.Scanner; import java.util.TreeSet; public class hdu1172 { static String[] s = new String[102]; static int count[] = new int[102]; static int ans[] = new int[102]; public static void main(String[] args) { // TODO Auto-generated method stub Scanner scan = new Scanner(System.in); int n; while (scan.hasNext()) { n = scan.nextInt(); if (n == 0) { break; } scan.nextLine(); for (int i = 0; i < n; i++) { String str = scan.nextLine(); String ss[] = str.split(" "); s[i] = ss[0]; count[i] = Integer.valueOf(ss[1]); ans[i] = Integer.valueOf(ss[2]); } int max = 0, j, i,x=0; boolean flag=false; for (i = 1000; i <= 9999; i++) { for (j = 0; j < n; j++) { flag=ok(i,j); if(!flag){ break; } } if(flag){ x++; max=i; } } if (x==1) { System.out.println(max); } else System.out.println("Not sure"); } } private static boolean ok(int sum, int j) { // TODO Auto-generated method stub boolean mark[]=new boolean[5]; String ss=String.valueOf(sum); String sss=s[j]; int x=0; int y=0; for(int i=0;i<4;i++){ for(int k=0;k<4;k++){ if(ss.charAt(i)==sss.charAt(k)&&!mark[k]){ mark[k]=true; x++; break; } } } for(int i=0;i<4;i++){ if(ss.charAt(i)==sss.charAt(i)){ y++; } } if(count[j]!=x){ return false; }else if(ans[j]!=y){ return false; } return true; } }
相关文章推荐
- java判断字符串是否为数字或中文或字母
- Java2下Applet数字签名具体实现方法
- Java--基础--字符串中提取数字
- java数字字符串压缩
- java 数字游戏
- Java数字处理
- 剑指offe面试题8 旋转数组的最小数字 (java实现)
- java从字符串中提取数字的简单实例
- java面试题---统计中含有字母数字中的最大字符
- java随机生成邀请码(数字+字母)
- leetcode解题之 18. 4Sum Java版(结果是目标值的四个数字和)
- JAVA版List<Map>排序,按字符或数字类型排序,支持正序倒序
- CCF 历年真题之数字排序(_1503_2_NumericalSorting.java )参考答案
- 数字图像处理——用Java对数字图像写水印
- 数字签名示例程序 Java编写
- java & python猜数字游戏对比
- 在Java中如何确定浮点数的精度,例如按要求确定小数点后面的数字个数
- java正则表达式统计字母和数字
- java poi 导出excel 数字有问题
- Java小程序-猜数字程序(只能玩有限次)