杨辉三角详解

本文详细介绍了杨辉三角的数学原理,包括其每行数字的生成规则和对称性质。并提供了如何编写程序来输出杨辉三角中指定位置的数字,包括输入输出示例。通过理解这些内容,可以更好地掌握杨辉三角的特性及其在编程中的应用。

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

杨辉三角是我国古代一个重要的数学成就 。

如上图,杨辉三角是一个满足以下条件的几何排列:

1. 每个数等于它上方两数之和。
2. 每行数字左右对称,由1开始逐渐变大。
第 n 行的数字有 n 项。

请编写一个程序,按题目要求输出杨辉三角中第 n 行第 m 个数字。

输入

第一行,两个数字 n 和 m ,表示需要输出的数字在杨辉三角上的位置,行列均从 1 开始,(1<=n,m<=10000),以空格分隔。

输出

仅包含一个整数,即杨辉三角中第 n 行第 m 列处的数字。

输入示例

7 5

输出示例

15

算法原理:

杨辉三角是一组数字排列的三角形. 它的排列情况有两个特点:

(1). 三角形两侧数值均为1: 即 " 三角形的第一行为1 " 以及 " 无论哪一行它的第一列和最后一列都为1 "

这里可以把这种规律记成n=m(即在一行), m=1(列为1时).

(2). 除第一种情况外, 其他位置的数值是其正上方与左上角数值之和

某数值正上方的那个数坐标为(n-1, m)

某数值左上角的那个数坐标为(n-1, m-1)

 

由以上分析可写出代码.

 

代码详解:

import java.util.Scanner;

public class YangHuiTriangle {
    public static int YangHuiTriangle(int n, int m){
        /*
        根据杨辉三角, 可发现返回1有两种情况
          1.当n==m, 即在第一行,返回1
          2.无论在哪一行, 该行的第一列和最后一列都是1,即m为1时,返回1
        这两种情况满足其一即可返回1
        */
        if(n==m||m==1){
            return 1;
        }else{
            //这个数等于它上方两数之和
            //这个数上方两个数的坐标分别是(n-1,m-1)和(n-1,m)
            return YangHuiTriangle(n-1, m-1)+YangHuiTriangle(n-1, m);
        }
    }
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in); //标准输入
        while(sc.hasNext()){
            //在控制台输入"指定行n和指定列m",回车即可得第n行第m列的数
            int n = sc.nextInt();
            int m = sc.nextInt();
            System.out.println(YangHuiTriangle(n, m));//标准输出
        }
    }
}

输出测试:

 

 

 

 

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值