JAVA递归经典例子
来源:互联网 发布:上海市市立幼儿园 知乎 编辑:程序博客网 时间:2024/04/28 02:20
从第一天到公司就受到老大关照,把羽化从一驼大白栽培到小白一只-0-,传说老大要离开公司了,有点小感伤,感谢老大在这段时间的照顾,希望老大事业增增日上,生活美满幸福~ ~
说说这次老大给我的问题,一个棋盘,一个格子放一个棋子,要求横竖不能有多个棋子,问有多少种放法?
我先以3X3和4X4的棋盘为例找规律,有兴趣的人可以自己推推看。
public class Test1{public static void main(String[] args){int a = 0;int b = 0;int c = 0;int d = 0;int x1 = 3;int x2 = 4;int k = 0;for (a = 1; a <= x1; a++){for (b = 1; b <= x1; b++){if (b == a)continue;for (c = 1; c <= x1; c++){if (c == a || c == b)continue;System.out.println("(" + 1 + "," + a + ")" + " (" + 2 + "," + b + ")" + " (" + 3+ "," + c + ")");k++;}}}System.out.println(k);System.out.println();k=0;for (a = 1; a <= x2; a++){for (b = 1; b <= x2; b++){if (b == a)continue;for (c = 1; c <= x2; c++){if (c == a || c == b)continue;for (d = 1; d <= x2; d++){if (d == a || d == b || d == c)continue;System.out.println("(" + 1 + "," + a + ")" + " (" + 2 + "," + b + ")" + " (" + 3+ "," + c + ")" + " (" + 4 + "," + d + ")");k++;}}}}System.out.println(k);}}
算羽化笨吧。。。虽然能正确显示着两个例子,也看出了是个排序的规律问题,但就是不知道代码如何下手,老大就提示我用递归- -,还是有点雾,所以在网上看了看递归的例子,找到了个类似的例子,改了改完成了下面的代码。
import java.util.ArrayList;public class Test2{private static int x = 3;private static int k = 0;private static ArrayList<Integer> sum = new ArrayList<Integer>();public static void main(String[] args){for(int i=1;i<=x;i++){sum.add(i);}permute(sum, 0, x-1);System.out.println(k);}public static void permute(ArrayList<Integer> sum, int low, int high){int i;if (low == high){String cout = "";for (i = 0; i <= high; i++)cout +="("+ (i+1) + "," +sum.get(i)+") ";System.out.println(cout);k++;}else{for (i = low; i <= high; i++){int temp = sum.get(low);sum.set(low,sum.get(i));sum.set(i,temp);permute(sum, low + 1, high);temp = sum.get(low);sum.set(low,sum.get(i));sum.set(i,temp);}}}}
老大每次都提醒羽化JAVA基础很重要,看来的确如此。。。
若哪位有别的方式,可以给羽化发一份,大家一起提高~ ~
- JAVA递归经典例子
- 递归经典例子
- 递归 经典例子
- 递归的几个经典例子
- java 递归 小例子
- JAVA递归例子
- 递归例子(Java)
- java经典例子
- java 反射经典例子
- JAVA多线程经典例子
- JAVA经典例子
- JAVA经典算法例子
- 递归函数的经典例子(汉诺塔问题)
- 算法-递归分治(经典例子)
- 递归算法及经典例子实现
- 递归算法及经典递归例子代码实现
- 递归算法及经典递归例子代码实现
- 递归算法及经典递归例子代码实现
- Oracle 语句优化30个规则(上)
- 高效人士的七个习惯
- linux gcc及gdb常用功能学习总结
- 赋权边覆盖问题——采用禁忌搜索算法的C++实现
- Oracle 语句优化30个规则(下)
- JAVA递归经典例子
- 世界上最伟大的推销员
- Windows API BUTTON篇学习笔记
- java在ACM中的用法
- Oracle SQL的优化
- android 条码识别软件开发全解析
- ThinkPHP的CURD方法及查询方法一览
- 正则表达式
- 一些资源