赞
踩
输入不重复的4位数,输出A:1,B:1,
其中A表示位置和数字都正确,B表示数字正确位置不正确
假如用户输入1234,随机数为1405 输出为A:1,B: 2,
用户输入1432,随机数为1405 输出为A:2,B: 2,
1.获取用户输入,判断输入是否正确,使用递归,如果不正确一直提示输入直到正确为止
2.生成不重复的随机数,使用洗牌算法。
3.判断数据是否正确,如果条件全部满足直接跳出循环
三.代码实现
- import java.util.Random;
- import java.util.Scanner;
-
- public class game {
- public static void main(String[] args) {
- // i次数,y位数
- System.out.println(mathgame(6, 4));
- }
- // 用户输入
- public static double panduan(int y) {
- System.out.println("输入" + y + "位整数数");
- Scanner scanner = new Scanner(System.in);
- double userinput = scanner.nextDouble();
- if (userinput < (1 * Math.pow(10, y - 1)) || userinput > (1 * Math.pow(10, y) - 1)) {
- System.out.println("输入错误");
- return panduan(y);
- }
- if (userinput % 1 != 0) {
- System.out.println("请不要输入小数");
- return panduan(y);
- }
- return userinput;
- }
-
- // 不重复的随机数
- public static int rodem(int lan) {
- Random r = new Random();
- // 生成0-9随机数
- int arr[] = new int[10];
- for (int i = 0; i < arr.length; i++) {
- arr[i] = i;
- }
- for (int i = 0; i < lan; i++) {
- int rodem = r.nextInt(arr.length - i);
- int temp = arr[lan - 1 - i];
- arr[lan - 1 - i] = arr[rodem];
- arr[rodem] = temp;
- }
- // 判断第一项不能为0
- if (arr[0] == 0) {
- int temp = arr[0];
- int m = arr[r.nextInt(lan-1)+1];
- arr[0] = m;
- arr[m] = temp;
- }
- int result = 0;
- for (int i = 0; i < lan; i++) {
- result = result * 10 + arr[i];
- }
- return result;
- }
-
- public static String mathgame(int i, int y) {
- // 随机数
- String random = String.valueOf((int) rodem(y));
- // a表示位置和数字都对
- // b表示数字对顺序不对
-
- int a = 0;
- int b = 0;
- String result="失败了";
- for (int n = 0; n < i; n++) {
- a = 0;
- b = 0;
- // 获取用户输入
- String userinput = String.valueOf((int) panduan(y));
- // System.out.println(userinput + "用户输入的数据");
- // System.out.println(random + "随机数");
- // 判断a
-
- for (int nft = 0; nft < y; nft++) {
- // 处理数据判断
- if (random.charAt(nft) == userinput.charAt(nft)) {
- a += 1;
- }
- // 判断b
- for (int nb = 0; nb < y; nb++) {
- if (random.charAt(nft) == userinput.charAt(nb)) {
- b += 1;
- break;
- }
- }
- }
- System.out.println("A:" + a + "B:" + b);
- if (a==y){
- result="成功了";
- break;
- }
- }
- return result;
- }
- ;
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。