java程序怎么实现直角的杨辉三角?

刚学java,还是菜鸟,求大神指导呀!查了一下百度的,有的写的特别深,根本看不懂,希望大神给个入门级的就好了

6个回答

杨辉三角有两个办法求值
一个是从上往下推
第一行是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

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();
}
}
}

HUANG929
恩新手 import java.util.Scanner; public class yhsj{ public static void main(String args[]){ int n; Scanner reader = new Scanner(System.in); System.out.println("请输入一个100以内的数:"); n = reader.nextInt(); int a[][]=new int[100][100]; int i,j; a[0][0]=1; for(i=1;i<n;i++){ a[i][0]=1; for(j=1;j<n;j++){ a[i][j]=a[i-1][j]+a[i-1][j-1]; } } for(i=0;i<n;i++){ for(j=0;j<n;j++){ if(a[i][j]!=0) System.out.print(a[i][j]+" "); } System.out.println(); } } }
一年多之前 回复
HUANG929
恩新手 改进:
一年多之前 回复

给你一个十行的代码

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();
}
}
}

图片说明

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();
}
}
}

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问