杨辉三角(递归)c++

tech2022-07-11  178

洛谷 T131253 杨辉三角(递归)

题目描述 设计递归程序,计算并输出杨辉三角的前n行。

输入格式 第一行一个正整数n,意义见描述。

输出格式 输出n行,表示前n行的杨辉三角。 行内元素以一个空格隔开。

输入输出样例 输入 #1

4

输出 #1

1 1 1 1 2 1 1 3 3 1

说明/提示

对于98%的数据,1≤n≤25。 对于100%的数据,1≤n≤1500,且由于元素过大,你需要将每个元素对998244353取模后输出。

参考解答:

#include<iostream> using namespace std; //杨辉三角 int num[1501][1501];//设置二维数组来“记忆(保存)”数据,避免一些重复的递归而造成的时间消耗 int Num(int i, int j) {//i表示行数,j表示该行第j个数,fun(i,j)表示第i行第j个数 if (j == 1 || j == i)//若是第一个位置 或 行数与位置数相同(即该行最后一个数) 则输出1 return 1; else return num[i][j]?num[i][j]:(num[i][j]=(Num(i - 1, j - 1) + Num(i - 1, j)) % 998244353); } int main() { int n; cin >> n; for (int i = 1; i <= n; i++) { for (int j = 1; j <= i; j++) { cout << Num(i, j) << " "; } cout << endl; } return 0; }

注:题目来源于洛谷平台,转载请注明文章出处https://blog.csdn.net/weixin_45912291/article/details/108369442

最新回复(0)