- 正杨辉三角
- 倒杨辉三角
【发现杨辉三角规律:下一行从第二个数开始为上一行的两数相加】
- 正杨辉三角
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
int a[][]=new int[n][n];
for(int i=0;i<n;i++){
a[i][0]=1;
a[i][i]=1;
if(i>1){
for(int j=1;j<i;j++){//需要自定义的只有中间的
//所以范围在1~i之间
a[i][j]=a[i-1][j-1]+a[i-1][j];
}
}
}
for(int i=0;i<n;i++){
for(int j=0;j<=i;j++){//注意每个取值范围一定要细心
System.out.print(a[i][j]+" ");
}
System.out.println();
}
}
}
- 倒杨辉三角
import java.util.Scanner;
public class daoYangHui {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[][] a = new int[n][n];
for(int i=0;i<n;i++)
{
for(int j=0;j<=i;j++)
{
if(i==j||j==0)
a[i][j]=1;
else
a[i][j]=a[i-1][j]+a[i-1][j-1];
}
}
for(int i=0;i<n;i++)
{
for(int j=0;j<i;j++)
System.out.print(" ");
for(int k=0;k<n-i;k++){
System.out.print(a[n-i-1][k]);
System.out.print(" ");
}
if(i!=n-1)
System.out.println();
}
}
}
import java.util.Scanner;
public class YangHui {
public static void main(String[] args) {
YangHui yHui = new YangHui();
Scanner input = new Scanner(System.in);
System.out.println("杨辉三角");
System.out.print("输入杨辉三角的阶数:");
int number = input.nextInt();
yHui.yangHuiAngle(number);
yHui.yangHuiAngle1(number);
input.close();
}
//使用组合方式计算杨辉三角
void yangHuiAngle(int number){
double result,temp1=1,temp3 = 1;
for(int i = 0;i<number;++i){
for(int countSpace = 0;countSpace<(number-i)/2;++countSpace)
System.out.print(" ");
if((i+1)%2 == number%2){
System.out.print(" ");
}
System.out.print("1 ");
for(int count = i,temp2 = 1;count >= 1;--count,++temp2){
temp1 *= count;
temp3 *= temp2;
result = temp1 / temp3;
System.out.printf("%-8.0f",result);
}
System.out.println();
}
}
//使用两肩之和的方式计算杨辉三角
void yangHuiAngle1(int number){
int[][] a = new int[number][number];
for(int i=0;i<number;++i){
a[i][0] = 1;
a[i][i] = 1;
}
for(int i=2;i<number;++i){
for(int j=1;j<i;++j){
a[i][j] = a[i-1][j-1] + a[i-1][j];
}
}
for(int i=0;i<number;++i){
System.out.printf("%" + ((number-i)*2)+ "c",' ');
for(int j=0;j<=i;++j)
System.out.printf("%4d",a[i][j]);
System.out.println();
}
}
}