一道考递归的题目
2014-03-21 11:32
381 查看
题目:
输入1:输出:1;输入2 :输出:222 212 222;
输入3:输出:33333 32223 32123 32223 33333
答案
public static void main(String ...args){ String content = Arrays.toString(generator(3)); content = content.substring(1, content.length()-1); System.out.println(content.replaceAll(",", " ")); } /* * 输入1:输出:1 * 输入2 :输出:222 212 222 。开头和结尾都是222,中间的212就是在1的前后加上2,也就是212 * 输入3:输出:33333 32223 32123 32223 33333。开头和结尾都是33333。中间的三个数 32223,32123,32223, * 这三个数分别把开头和结尾的3去掉就是 222,212,222,这个结果和输入2的输出是一模一样的对吧。 * 结论:当输入n的时候,开头的结尾都是n,中间的数就是输入n-1时各个数的开头和结尾都加上n */ public static String [] generator(int num){ if (num == 1) return new String[]{"1"}; String [] beforNum = generator(num - 1); String result = "",head = ""; for (int i = 0; i < num*2 -1; i++) { head+=num+""; } result +=head+","; for (int i = 0; i < beforNum.length; i++){ result += num+""+beforNum[i]+""+num+","; } //读取并直接追加。好在直接是对称的。 result +=head; return result.split(","); }
相关文章推荐
- 一道经典的额递归题目
- 一道题目,学到了递归while实现和“<<”运算级
- 一道递归题目
- 一道递归思想的排列组合题目
- 一道迷宫题目的非递归解法
- 一道爱出的题目,就是前面两个数相加 用递归方法实现
- 初探“递归”——由一道题目引出的问题
- 一道清华的上机题目
- 同学复试的一道C语言题目
- 一道js动画题目
- 一道有意思的多线程题目,请问最后结果是多少
- [C语言]关于指针和int型的一道题目
- 自家人不认识自家人——考你一道有趣的Javascript小题目
- 关于一道软设题目
- javascript的一道this综合题目
- 由一道数据结构题目想到的
- 一道简单的面试题目:输入1234输出1_2_3_4
- 每天一道C语言题目
- 一道简单的把ArrayList中的正负数组分开并求得边界索引的题目
- 一道错过的二级题目