花生壳做的网站,专业网站建设公司推荐,wordpress模板博客,html5博客网站源码问题描述#xff1a;输入1~9以内的几个数字#xff0c;输出这些数字的多重组合。输入#xff1a;1,2,3输出#xff1a;123121323123问题分析#xff1a;当输入为1输出1当输入为1 2输出1212当输入为1 2 3输出123121323123那么可以分析如下当输入1 2 3 4时做了以下处理把…问题描述输入1~9以内的几个数字输出这些数字的多重组合。输入1,2,3输出123121323123问题分析当输入为1输出1当输入为1 2输出1212当输入为1 2 3输出123121323123那么可以分析如下当输入1 2 3 4时做了以下处理把上面结果拷贝123121323123123121323123然后在上面的基础上加上4即结果为1231213231231231213231234然后接着在拷贝的后面部分加上4结果为12312132312314243412413423412344然后讲以上数字排序输出就得到了输入为[1 2 3 4] 时的结果。在这个思路的基础上可以想到用递归的方法来做只需要在上一步的基础之上加上新的数字即可。实现代码如下import java.util.ArrayList;import java.util.Collections;public class Number {/** 递归函数的输入函数有两个第一个表示输入数组中第几个数字第二个表示输入数组* 由于动态数组可以灵活添加元素因此使用了动态数组来存储结果*/public static ArrayList foo(int i,int[]vec){//递归结束的条件是读到第一个元素之后返回该元素if(i0){ArrayList list new ArrayList();list.add(vec[0]);return list;}else{//得到上一步的结果ArrayList nlist foo(i-1,vec);int n nlist.size();int num vec[i];//把输入数组中此处的元素添加进动态数组nlist.add(num);//动态数组中的每一个元素将输入数组中当前元素放在个位之后追加到动态数组for(int k0;knlist.add(nlist.get(k)*10num);}return nlist;}}public static void main(String[] args) {int[] vec {1,2,3};int l vec.length;ArrayList list foo(l-1,vec);Collections.sort(list);for(int i:list){System.out.println(i);}}}以上是我的解题思路希望多多指教。