键盘录入:初学者打印杨辉三角形有些问题

我咋这么黑 2017-11-01 07:33:41
import java.util.Scanner;
class Para{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[][] arr = new int[n][n];


for(int i=0;i<n;i++){
for(int j=0;j<=i;j++){

if(j==0){
arr[i][j]=1;
System.out.println();
}

else if(j==arr[i].length-1){
arr[i][j]=1;
}

else if(i>2){
arr[i][j]=arr[i-1][j] + arr[i-1][j-1];
}

System.out.print(arr[i][j]);
}
}
}
}


打印出来的是这样的
1
10
100
1100
12100
133100
1464100
1510105100
161520156101
...全文
188 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
fcyh 2017-11-06
  • 打赏
  • 举报
回复
package com.shan;
 
import java.util.Scanner;
 
public class YFTriangle {
 
    public static void main(String[] args) {
        printYFTriangle();
    }
 
    /**
     * 1 要理解下面的实现,首先要明白int数组中元素默认值为 0
     * 2 然后每一次迭代打印新的一行的元素的时候:
     * 新的特定位置的元素 = 该位置原来的元素 + 该位置的前一个位置的值
     */
    public static void printYFTriangle(){
        System.out.println("how many lines you want:");
        Scanner in = new Scanner(System.in);
        int lines = in.nextInt();
        int[] a = new int[lines + 1];
        int previous = 1;
        for (int i = 1; i <= lines; i ++){
            for (int j = 1; j <= i; j++){
                int current = a[j];
                a[j] = previous + current;
                previous = current;
                System.out.print(a[j] + " ");
            }
            System.out.println();
        }
    }
 
}
Rookiekk 2017-11-05
  • 打赏
  • 举报
回复
package com.shan;

import java.util.Scanner;

public class YFTriangle {

    public static void main(String[] args) {
        printYFTriangle();
    }

    /**
     * 1 要理解下面的实现,首先要明白int数组中元素默认值为 0
     * 2 然后每一次迭代打印新的一行的元素的时候:
     * 新的特定位置的元素 = 该位置原来的元素 + 该位置的前一个位置的值
     */
    public static void printYFTriangle(){
        System.out.println("how many lines you want:");
        Scanner in = new Scanner(System.in);
        int lines = in.nextInt();
        int[] a = new int[lines + 1];
        int previous = 1;
        for (int i = 1; i <= lines; i ++){
            for (int j = 1; j <= i; j++){
                int current = a[j];
                a[j] = previous + current;
                previous = current;
                System.out.print(a[j] + " ");
            }
            System.out.println();
        }
    }

}

62,626

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧