A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

/*3.分析以下需求,并用代码实现:
        (1)打印由7,8,9三个数组组成的三位数,要求该三位数中任意两位数字不能相同
        (2)打印格式最后的三位数字以空格分隔,如789 798 879 897 978 987
        分析:
                输入三个数字;*/
package com.heima.work13;
import java.util.Scanner;
public class TestWork03 {
        public static void main(String[] args) {
                Scanner sc = new Scanner(System.in);
                int[] arr = new int[3];
                System.out.println("请输入第一个数字:");
                arr[0] = sc.nextInt();
                System.out.println("请输入第二个数字:");
                arr[1] = sc.nextInt();
                System.out.println("请输入第三个数字:");
                arr[2] = sc.nextInt();
               
                if(arr[0]==arr[1]||arr[0]==arr[2]||arr[1]==arr[2])
                        System.out.println("输入数字不能相同!");
                String str = result(arr);
                System.out.println("三个数字的所有组合为:"+str);
               
        }
        //穷举法:
        public static String result(int[] arr) {
                StringBuilder str = new StringBuilder("");
                for (int i = 0; i < arr.length; i++) {
                        for (int j = 0; j < arr.length; j++) {
                                for (int j2 = 0; j2 < arr.length; j2++) {
                                        if (arr[i] != arr[j] && arr[i] != arr[j2]
                                                        && arr[j] != arr[j2])
                                                str = str.append(arr[i]).append(arr[j]).append(arr[j2]).append(" ");
                                }
                        }
                }       
                return str.toString().trim();
        }

}

1 个回复

倒序浏览
你可以考虑下用递归的方法实现,然后在写个static方法存储个数,可以实现这个需求。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马