键盘录入行数打印杨辉三角形

我咋这么黑 2017-11-01 07:41:12
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>=1){
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
...全文
421 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_40891617 2017-11-02
  • 打赏
  • 举报
回复
引用 4 楼 qq_40891484的回复:
主要是不知道从第二行考试多出了0 不应该的啊
j循环次数的有点问题,调下
yrftc 2017-11-02
  • 打赏
  • 举报
回复
终于知道了 谢谢
我咋这么黑 2017-11-02
  • 打赏
  • 举报
回复
主要是不知道从第二行考试多出了0 不应该的啊
广寒月蛮兔 2017-11-02
  • 打赏
  • 举报
回复
用"\t"隔开,打印高位数据会比较整齐,不要用空格
一个帅逼 2017-11-02
  • 打赏
  • 举报
回复
public static void main(String[] args) {
		try {
			triangle();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	public static void triangle() throws Exception{
		Scanner s=new Scanner(System.in);
		int rownums=0;
		try {
			rownums=s.nextInt();
		} catch (Exception e) {
			// TODO: handle exception
			System.out.println("请输入正确的数字!");
		}
		if(rownums<=0){
			throw new Exception("请输入正确的正整数!");
		}
		int[][] a=new int[rownums][rownums];
    	for (int i = 0; i < rownums; i++) {
    		for (int k = 1; k <a.length-i; k++) {
				System.out.print(" ");
			}
			for (int j = 0; j <=i; j++) {				
				if(j==0){
					a[i][j]=1;
				}else if(i==1){							
					a[i][j]=1;							
				}else {									
					a[i][j]=a[i-1][j-1]+a[i-1][j];		 
				}
				System.out.print(a[i][j]+" ");
			}
			System.out.println();
		}
	}
别输入太大的行数,因为每一行的数字间我只间隔了一个空格,行数太大的话三角会变形,当然也是可以自己调整每一行数字间间隔的空格的
W1587943344S 2017-11-02
  • 打赏
  • 举报
回复
package ang.demo; import java.util.Scanner; import javax.xml.soap.Text; public class SanJiao { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.println("please input a single number"); int tx = input.nextInt(); int [][]row = new int[tx][tx]; for (int i = 0; i <tx; i++) { for (int j = 0; j <=i; j++) { if (i==1||i==j||j==0) { row[i][j]=1; }else { // row[i][j]= row[i][j-1]+row[i-1][j-1]; row[i][j]= row[i-1][j]+row[i-1][j-1]; } System.out.print(row[i][j]); } System.out.println("\t"); } } }
weixin_40891617 2017-11-01
  • 打赏
  • 举报
回复
我也是初学者,给你几个建议。第一个是打印的时候加个逗号可以看清;第二个是你的杨辉三角要保证第一行1条记录,第二行2条记录,所以你的i,j要符合这种条件,或者是从1开始,或者是从0开始但是j就也得减掉2了。整体逻辑是没问题的

62,614

社区成员

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

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