杨辉三角是一个基础的算法题目 具体的实现如下:
打印输出杨辉三角图像:
规律总结:
1.最外面的两侧的数据都是1
2.中间元素的值为上一行本列值+上一行的上一列的值
根据规律可以写出如下代码
int[][] v=new int[n][n]; for (int i = 0; i < n; i++) { v[i][0]=1; v[i][i]=1; if (i>=2){ for (int j = 1; j < i ; j++) { v[i][j]=v[i-1][j-1]+v[i-1][j]; } } }for (int i = 0; i < n; i++) { v[i][0]=1; v[i][i]=1; if (i>=2){ for (int j = 1; j < i ; j++) { v[i][j]=v[i-1][j-1]+v[i-1][j]; } } }
for (int i=0;i<n;i++){
for (int j = 0; j <= i; j++) {
System.out.print(v[i][j]+" ");
}
System.out.println();
}
但是打印出的样式(Rt三角形)和我们的要求(等边三角形)不符,此处我们再加上从键盘输入指定的行列(m,n)输出对应的元素,完整代码如下。
import java.util.Scanner; //实现键盘录入 public class Yang { public static void yanghui(int n){ int[][] v=new int[n][n]; Scanner s=new Scanner(System.in); System.out.println("输入:"); int x = s.nextInt()-1;//由于计算机计数是从0来开始 int y = s.nextInt()-1; for (int i = 0; i < n; i++) { v[i][0]=1; v[i][i]=1; if (i>=2){ for (int j = 1; j < i ; j++) { v[i][j]=v[i-1][j-1]+v[i-1][j]; } } } for (int i=0;i<n;i++){ for (int k=0; k<n-i; k++){//输出格式 System.out.print(" "); } for (int j = 0; j <= i; j++) { System.out.print(v[i][j]+" "); } System.out.println(); } System.out.println("**********输出结果*************"); int end=v[x][y]; System.out.println(end); } public static void main(String[] args) { yanghui(10);//设置杨辉三角的行数 } }