package com.supermars.practice;
import java.util.Scanner;
public class 杨辉三角形与二项式定理递推 {
static Scanner cin = new Scanner(System.in);
static int C[][] = new int[1 << 7][1 << 7];
public static void main(String[] args) {
while (cin.hasNext()) {
int n = cin.nextInt();
C[0][0] = 1;
for (int i = 1; i <= n; i++) {
C[i][0] = 1;
for (int j = 1; j <= n; j++) {
C[i][j] = C[i - 1][j - 1] + C[i - 1][j];
}
}
for (int i = 0; i <= n; i++) {
for (int j = 0; j <= i; j++) {
System.out.print(C[i][j] + " ");
}
System.out.println("");
}
}
}
}
package com.supermars.practice;
import java.util.Scanner;
public class 杨辉三角形与二项式定理组合公式 {
// C[k]=(n-k+1)/k*C[k-1]
static Scanner cin = new Scanner(System.in);
static long C[] = new long[1 << 7];
public static void main(String[] args) {
while (cin.hasNext()) {
int n = cin.nextInt();
C[0] = 1;
for (int i = 1; i <= n; i++) {
C[i] = C[i - 1] * (n - i + 1) / i;
}
print_C(n);
}
}
private static void print_C(int n) {
for (int i = 0; i <= n; i++) {
System.out.print(C[i] + " ");
}
System.out.println("");
}
}