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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 菜鸟鸟 中级黑马   /  2016-7-4 21:27  /  693 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

3.分析以下需求,并用代码实现:
        (1)打印由7,8,9三个数组组成的三位数,要求该三位数中任意两位数字不能相同
        (2)打印格式最后的三位数字以空格分隔,如789 798 879 897 978 987
         */

1 个回复

正序浏览
public static void main(String[] args) {
                int[] arr = { 7, 8, 9 }; // 定义一个数组
                StringBuffer sb = new StringBuffer();// 定义一个字符串缓冲区,用来储存字符串
                for (int i = 0; i < arr.length; i++) { // 第一次遍历数组获取三位数的百位
                        for (int j = 0; j < arr.length; j++) { // 第二次遍历数组获取三位数的十位
                                for (int k = 0; k < arr.length; k++) {// 第三次遍历数组获取三位数的个位
                                        if (arr[i] != arr[j] && arr[i] != arr[k] // 判断三个数中,任意两个数字是否相同
                                                        && arr[j] != arr[k]) {
                                                sb.append(arr[i]).append(arr[j]).append(arr[k]) // 如果三位数中任意两位数字不相同,满足条件,将这个组合后的三位数添加到sb的字符串缓冲区里面
                                                                .append(" ");
                                        }
                                }

                        }
                }
                sb.replace(sb.lastIndexOf(" "), sb.length(), "");//链式编程去掉末尾的空格
                System.out.println(sb.toString());
        }

}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马