【计算机算法】杨辉三角——递推

题目

输入行号和列号,输出对应的位置的值以及到这个位置的杨辉三角

代码

//输入行号和列号,输出对应的位置的值以及到这个位置的杨辉三角
#include<stdio.h>
#define MAXN 100//根据需要可以增加数组空间
#include<iostream>
using namespace std;
int main(){
    
    
	int n,m,arr[MAXN][MAXN];//如果输出过大可以考虑将数组类型改成long或者longlong
	cin>>n>>m;
	for(int k = 1;k <= n;k++) {
    
    
		arr[k][1] = 1;
		arr[k][k] = 1;
	}
	for(int k = 2;k <= n;k++){
    
    
		for(int l = 2;l < k;l++){
    
    
			arr[k][l] = arr[k - 1][l] + arr[k - 1][l - 1];
		}
	}
	cout<<arr[n][m]<<endl;
	for(int i = 1;i <= n;i++){
    
    
		for(int j = 1;j <= n - i;j++)
			printf("  ");
		for(int j = 1;j <= i;j++){
    
    
			printf("%3d ",arr[i][j]);//根据需要控制输出位数,这里输入 10 10就刚刚好
		}
		cout<<endl;
	}
}

运行截图

在这里插入图片描述

おすすめ

転載: blog.csdn.net/passer__jw767/article/details/112160724