* 一个小游戏,随机生成一个四位数,你输入一个答案,会告诉你有几个数对了,然后有几个数在里面但是位置不对。 * 例如:1234 你输入1203,告诉你2个对了,1个在里面但是位置不对 *

题目:

答案: 

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+"个在里面但是位置不对");
    }
}

如果有更好的解题思路希望私信我,感谢感谢~!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

最耀眼的那个繁星

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值