一道猜数字的算法题目,某软件公司面试题

来源:百度知道 编辑:UC知道 时间:2024/07/05 12:43:00
//编写一个程序,由用户送出一个没有重复数字的四位数abcd给匹配模块,由程序去猜.
//程序给出一个没有重复数字的四位数hijk给匹配模块,匹配模块反馈一个形如xAyB的信息.
//x表示hijk和abcd'数字和数位'都匹配的个数,y表示hijk和abcd'数字'相匹配的个数.
//例如,拥护给出数字1234,程序猜测5134,则反馈1A2B,'1'匹配数字但是不匹配位置,'34'匹配数字和位置.
//试设计一个算法,由程序来猜测用户给出的数字,最多只有7次机会,猜准后程序结束.
谁能给出算法?伪代码或者思路都可以,确实可行后再加50分.
请更加具体一些,提供伪代码或者流程图都可以,需要一定的可操作性,而且须要满足最多7次能够得到结果的要求.

我知道怎么猜可以得到结果

先猜
1234
再猜
2345 可以肯定 是否有 1 或者 5

就这样判断的,一般 7会合可以猜出结果

这不是文曲星上的游戏嘛。。。

记得很久以前写过一次。。。

楼主自己试下,很简单的。

正在给你编一个。今天晚了,明天把全部发上来。今天先发部分代码。

package org.Miao;

public class CheckNumber {

public CheckNumber(){

}

//根据提示结果,生成可能的数
public Integer getNumber(String result){
return null;
}
}

package org.Miao;

public class Main {

/**
* @param args
*/
public static void main(String[] args) {

Number number=new Number(5432);
CheckNumber checkNumber=new CheckNumber();
for(int i=0;i<7;i++){
if(number.isNumber(checkNumber.getNumber(number.getResult()))){
System.out.printf("在第%d次运算中,得到正确结果%d",i,number.getNumber());
break;
}else{
System.out.printf("在第%d次运算中,没有得到正确结果",i);
}
}
}