java算法大全

1  Fibonacci

Fibonacci为1200年代的欧洲数学家,在他的著作中曾经提到:若有一只兔子每个月生一只小兔子,一个月后小兔子也开始生产。起初只有一只兔子,一个月后就有两只兔子,两个月后有三只兔子,三个月后有五只兔子(小兔子投入生产)……
这就是Fibonacci数列,一般习惯称之为费式数列,例如:1,1,2,3,5,8,13,21,34,55,89,……

Java代码
  1. public class Fibonacci {  
  2.     public static void main(String[] args) {  
  3.         int[] fib = new int[20];   
  4.   
  5.         fib[0] = 0;   
  6.         fib[1] = 1;   
  7.   
  8.         for(int i = 2; i < fib.length; i++)   
  9.             fib[i] = fib[i-1] + fib[i-2];   
  10.   
  11.         for(int i = 0; i < fib.length; i++)   
  12.             System.out.print(fib[i] + " ");   
  13.         System.out.println();  
  14.     }  
  15. }  
Java代码
  1. public class Fibonacci {  
  2.     public static void main(String[] args) {  
  3.         int[] fib = new int[20];   
  4.   
  5.         fib[0] = 0;   
  6.         fib[1] = 1;   
  7.   
  8.         for(int i = 2; i < fib.length; i++)   
  9.             fib[i] = fib[i-1] + fib[i-2];   
  10.   
  11.         for(int i = 0; i < fib.length; i++)   
  12.             System.out.print(fib[i] + " ");   
  13.         System.out.println();  
  14.     }  
  15. }  
public class Fibonacci { public static void main(String[] args) { int[] fib = new int[20]; fib[0] = 0; fib[1] = 1; for(int i = 2; i < fib.length; i++) fib[i] = fib[i-1] + fib[i-2]; for(int i = 0; i < fib.length; i++) System.out.print(fib[i] + " "); System.out.println(); } }



2   巴斯卡(Pascal)

三角形基本上就是在解nCr ,因为三角形上的每一个数字各对应一个nCr ,其中n为row,而r为colnmu

Java代码
  1. import java.awt.*;   
  2. import javax.swing.*;   
  3.   
  4. public class Pascal extends JFrame {   
  5.     public Pascal() {   
  6.         setBackground(Color.white);   
  7.         setTitle("巴斯卡三角形");   
  8.         setSize(520350);   
  9.         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);   
  10.         show();   
  11.     }   
  12.   
  13.     private long combi(int n, int r){   
  14.         int i;   
  15.         long p = 1;   
  16.   
  17.         for(i = 1; i <= r; i++)   
  18.             p = p * (n-i+1) / i;   
  19.     
  20.         return p;   
  21.     }   
  22.   
  23.     public void paint(Graphics g) {   
  24.         final int N = 12;   
  25.         int n, r, t;   
  26.   
  27.         for(n = 0; n <= N; n++) {   
  28.             for(r = 0; r <= n; r++)   
  29.                 g.drawString(" " + combi(n, r),   
  30.                     (N-n)*20 + r * 40, n * 20 + 50);   
  31.         }   
  32.     }   
  33.   
  34.     public static void main(String args[]) {   
  35.         Pascal frm = new Pascal();   
  36.     }   
  37. }  
Java代码
  1. import java.awt.*;   
  2. import javax.swing.*;   
  3.   
  4. public class Pascal extends JFrame {   
  5.     public Pascal() {   
  6.         setBackground(Color.white);   
  7.         setTitle("巴斯卡三角形");   
  8.         setSize(520350);   
  9.         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);   
  10.         show();   
  11.     }   
  12.   
  13.     private long combi(int n, int r){   
  14.         int i;   
  15.         long p = 1;   
  16.   
  17.         for(i = 1; i <= r; i++)   
  18.             p = p * (n-i+1) / i;   
  19.     
  20.         return p;   
  21.     }   
  22.   
  23.     public void paint(Graphics g) {   
  24.         final int N = 12;   
  25.         int n, r, t;   
  26.   
  27.         for(n = 0; n <= N; n++) {   
  28.             for(r = 0; r <= n; r++)   
  29.                 g.drawString(" " + combi(n, r),   
  30.                     (N-n)*20 + r * 40, n * 20 + 50);   
  31.         }   
  32.     }   
  33.   
  34.     public static void main(String args[]) {   
  35.         Pascal frm = new Pascal();   
  36.     }   
  37. }  
import java.awt.*; import javax.swing.*; public class Pascal extends JFrame { public Pascal() { setBackground(Color.white); setTitle("巴斯卡三角形"); setSize(520, 350); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); show(); } private long combi(int n, int r){ int i; long p = 1; for(i = 1; i <= r; i++) p = p * (n-i+1) / i; return p; } public void paint(Graphics g) { final int N = 12; int n, r, t; for(n = 0; n <= N; n++) { for(r = 0; r <= n; r++) g.drawString(" " + combi(n, r), (N-n)*20 + r * 40, n * 20 + 50); } } public static void main(String args[]) { Pascal frm = new Pascal(); } }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值