题目:
答案:
public class ExamDemo0006 {
public static void main(String[] args) {
Random r=new Random();
//例如要生成一个区间为[123,456]之间的整数,给出
//其实这是基于一个公式 如果要取一个范围在[min,max]之间的随机整数那么公式如下
//int randNumber =r.nextInt(max - min + 1) + min;
//生成[1000,9999]
int k =r.nextInt(9000) + 1000;
System.out.println(k);
// double n=Math.random();//生成0~1的随机数
// int k= (int) (n*10000);
//
Scanner in=new Scanner(System.in);
System.out.println("请输入一个四位数: ");
int data=in.nextInt();
ExamDemo0006 test=new ExamDemo0006();
String result = test.game(k,data);
System.out.println(result);
}
public String game(int k,int data){
int status=0,su=0;
boolean[] index=new boolean[4];
String strk=Integer.toString(k);
String strData=Integer.toString(data);
char[] arr1=strk.toCharArray();
char[] arr2=strData.toCharArray();
//判断几个相同
for (int i = 0; i < 4; i++) {
index[i]=arr1[i]==arr2[i];
if (index[i]) {
status++;
}
}
//剔除相同的,不同的元素在随机数里面有几位相同
for (int i = 0; i < 4; i++) {
if (!index[i]){//false
for (int j = 0; j < 4; j++) {
if (arr2[i]==arr1[j]){
su++;
//遇到了一个相同就退出内循环
break;
}
}
}
}
return new String("你"+status+"对了,"+su+"个在里面但是位置不对");
}
}
如果有更好的解题思路希望私信我,感谢感谢~!