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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

package com.itheima;


/*
* 题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
* 思路:把这四个数字添加到一个数组,然后从任取一位当作第一位,然后任意取第二位,但不能和第一位相同
* 取第三位但不能和前两位相同,拼接这三个组成一个字符串,Integer解析输出即可
*/
public class Test11 {
        public static void main(String[] args) {
                int[] arr=new int[]{1,2,3,4};
                int count=0;
                for(int i=0;i<arr.length;i++){
                        for(int j=0;j<arr.length;j++){
                                if(arr[i]!=arr[j]){
                                        for(int x=0;x<arr.length;x++){
                                                if(arr[x] !=arr[i] && arr[x] !=arr[j]){
                                                        StringBuffer sb=new StringBuffer();
                                                        sb.append(arr[i]);
                                                        sb.append(arr[j]);
                                                        sb.append(arr[x]);
                                                        System.out.println(Integer.parseInt(sb.toString()));
                                                        count++;
                                                }
                                        }
                                }
                        }
                }
                //根据数学排列组合知识很容易得出结果应该是24个,可以验证。
                System.out.println("可以组成满足条件的数字有"+count+"个");
        }
}

1 个回复

正序浏览
有!就是不要把数字放入数组。三位数就嵌套for循环三次。最大数字是4,每一次循环的最高位都是4。判断三个数字个不相同,然后第一个for循环乘100,第二个10,然后三个相加!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马