黑马程序员技术交流社区

标题: 几个数字组合指定位数数字问题,大家有没有什么更方便的方法 [打印本页]

作者: 米阳SOHO    时间: 2015-12-2 22:03
标题: 几个数字组合指定位数数字问题,大家有没有什么更方便的方法
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+"个");
        }
}

作者: 莫盛强    时间: 2015-12-3 12:19
有!就是不要把数字放入数组。三位数就嵌套for循环三次。最大数字是4,每一次循环的最高位都是4。判断三个数字个不相同,然后第一个for循环乘100,第二个10,然后三个相加!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2