刚学java,还是菜鸟,求大神指导呀!查了一下百度的,有的写的特别深,根本看不懂,希望大神给个入门级的就好了
杨辉三角有两个办法求值
一个是从上往下推
第一行是1
第二行是1 1
以下,最左边和最右边都是1,中间每个是对应上面两个的和
比如第三行是1 (1+1=2) 1
第四行是1 (1+2=3) (2+1=3) 1
...
另一个是直接根据排列组合中的C m n公式来计算。比如第三行第一个就是C 3 1(3个里面选1个有几个选法),第二个是C 32 (3个里面选2个有几个选法)...
至于是直角的还是对称的,就看你是不是在最左边加上对应的空格占位了。
代码参考:https://blog.csdn.net/ky415/article/details/78559829
https://www.cnblogs.com/guwei4037/p/6056921.html
public class k {
public static void main(String[] args) {
int row = 10;
int[][] result = new int[row][row];
for (int i = 0; i < row; i++) {
result[i][0] = 1;
System.out.print(result[i][0] + "\t");
for (int j = 1; j <= i; j++) {
result[i][j] = result[i - 1][j - 1] + result[i - 1][j];
System.out.print(result[i][j] + "\t");
}
System.out.println();
}
}
}
public class YanghuiTriangleExample {
public static void main(String[] args) {
int rows = 10;
for(int i =0;i<rows;i++) {
int number = 1;
//打印空格字符串
System.out.format("%"+(rows-i)*2+"s","");
for(int j=0;j<=i;j++) {
System.out.format("%4d",number);
number = number * (i - j) / (j + 1);
}
System.out.println();
}
}
}
public class A
{
public static void main(String args[])
{
int x=10;
int num[][] = new int[x][x];
for(int m=0;m<x;m++){
for(int n=0;n<=m;n++){
if(n==0||m==n){
num[m][n]=1;
}
else
num[m][n]=num[m-1][n-1]+num[m-1][n];
}
}
for(int i=0;i<x;i++){
System.out.print(" ");
for(int j=x-i;j<=x;j++)
{
System.out.print(num[i][x-j]+" ");
}
System.out.println();
}
}
}
给你一个十行的代码
public class A{
public static void main(String[] args) {
int rows = 10;
for(int i =0;i<rows;i++) {
int number = 1;
for(int j=0;j<=i;j++) {
System.out.format("%4d",number);
number = number * (i - j) / (j + 1);
}
System.out.println();
}
}
}