《java常用演算法手冊》 第三章 演算法思想
阿新 • • 發佈:2018-11-01
//窮舉 public class Exhaustion { public static void main(String args[]) { Exhaustion e = new Exhaustion(); System.out.println(e.cal(100, 300)); } public String cal(int heads, int legs) { for(int i =0; i < heads; i++) { if(i*2+(heads-i)*4 ==legs) { return "chiken: "+i+" rabbit: "+(heads-i); } } return "null"; } }
//遞迴 遞推 //求階乘 求數列 public class Recursion { public static void main(String args[]) { Recursion e = new Recursion(); System.out.println(e.Fibonacci(35)); System.out.println(e.jiecheng(2)); } //Fibonacci public int Fibonacci(int length) { if(length <= 2) { return 1 ; }else { int a = Fibonacci(length - 2); int b = Fibonacci(length - 1); return a+b; } } //求n! //n!=n*(n-1)(n-2)*...*2*1 //(n-1)! = (n-1)(n-2)*...*2*1 //n! = n*(n-1)! public int jiecheng(int n) { if(n <= 2) { return n*1; }else{ return n*jiecheng(n-1); } } }