说实话这个编辑器第一次用还没看明白
左边编辑右边直接预览的意思么
。。。实在太长了今天先不看这编辑器的使用方法了
直接贴代码了,
package yhsjshuzu;
import java.util.Scanner; // 调入Scanner
public class dengyaoyanghui {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.print("请输入杨辉三角的行数:");
Scanner sc = new Scanner(System.in); // Scanner用法
int n = sc.nextInt(); // 同样Scanner
sc.close();
//这里有数据泄漏 使用XXX.close; 关闭sc
int arr[][] = new int[n][2*n-1];
/* 定义一个n行,2n-1列的数组
* [x][n-1-x]项和 [x][n-1+x]项的值为 1
*/
for (int x = 0; x < n; x++) {
arr [x][n-1-x] = 1;
arr [x][n-1+x] = 1;
//每行的起始项和结束项都是1,第一行因为起始和结束都是中间位置,没有必要分开写
}
for (int x = 2; x <= n-1; x++) {
// 然后从第三行开始,两边为1,写里边的数值,因为第一行和第二行都是1
for(int y = n+1-x; y < 2*n-3; y+=2){
//从每行不是1的项的位置开始,直到最后项,每次隔开一个位置 计算上边行两个数的和
arr[x][y]=arr[x-1][y-1]+arr[x-1][y+1];
}
}
//历遍数组,输出的时候,为值为0的項输出" "和\t,不为0的项,该是什么还是什么
for (int x = 0; x < n;x++) {
for (int y = 0; y < 2*n-1;y++) {
//y<2*n-1每行项的个数
if(arr[x][y]==0) {
System.out.print(" "+"\t");
}
else {
System.out.print(arr[x][y]+"\t");
}
}
System.out.println("");
}
}
}
里边规律自己再本子上画了半天感觉很粗糙,不过就结果而言看着还行。。。