杨辉三角形

本文介绍了一种用Java编程语言实现杨辉三角形的方法。文章详细解释了杨辉三角形的概念及其重要性质,并提供了完整的Java代码示例,演示如何根据用户输入的行数输出相应的杨辉三角形。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述
杨辉三角形又称Pascal三角形,它的第i+1行是(a+b)i的展开式的系数。
  
它的一个重要性质是:三角形中的每个数字等于它两肩上的数字相加。
  
下面给出了杨辉三角形的前4行:
  
   1
  
  1 1
  
 1 2 1
 
1 3 3 1
  
给出n,输出它的前n行。

输入格式
输入包含一个数n。

输出格式
输出杨辉三角形的前n行。每一行从这一行的第一个数开始依次输出,中间使用一个空格分隔。请不要在前面输出多余的空格。
样例输入
4
样例输出
1
1 1
1 2 1
1 3 3 1
数据规模与约定

1 <= n <= 34。

直接上代码:

package BasicExercise;

import java.io.IOException;
import java.util.Scanner;

public class Main {
	private final static int N=36;
	private int number=0;
	public void print(int size){
		int [][] array= new int[N][N];
		
		for(int i=0;i<=size+1;i++){
			for (int j=0;j<=size+1;j++){
				array[i][j]=0;
			}
		}
		array[1][1]=1;
		//System.out.println("What?");
		//计算这个三角形
		for(int j=1;j<=size+1;j++){
			for (int i=2;i<=size+1;i++){
				array[i][j]=array[i-1][j-1]+array[i][j-1];
			}
		}
		
		//输出这个杨辉三角形
		for(int i=2;i<=size+1;i++){
			for (int j=1;j<=size+1;j++){
				if(array[j][i]!=0)
					System.out.print(array[j][i]);
				/*else 
					break;*/
				}
			System.out.println();	
			}			
	}
	
	public static void main(String [] args){
		Main ma= new Main();
		/*try {
			ma.number= System.in.read();
			System.out.println("size="+ma.number);
		} catch (IOException e) {
			e.printStackTrace();
		}
		*/
		Scanner scan = new Scanner(System.in);
		ma.number= scan.nextInt();
		System.out.println("ma.number="+ma.number);
		ma.print(ma.number);
	}
}

(1):在打印杨辉三角形时,需要注意的一个问题是,在赋值的两个for()循环中,i与j的位置摆放问题。

(2):在Java中,我们选择在控制台输入一个参数的方法是使用Scanner,下面通过JDK文档来看看Scanner类的使用方法:

A simple text scanner which can parse primitive types and strings using regular expressions. 

A Scanner breaks its input into tokens using a delimiter pattern, which by default matches whitespace. The resulting tokens may then be converted into values of different types using the various next methods. 

For example, this code allows a user to read a number from System.in: 

     Scanner sc = new Scanner(System.in);
     int i = sc.nextInt();
上面的例子即是通过Scanner来输入一个参数。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

说文科技

看书人不妨赏个酒钱?

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值