杨辉三角(递归)c++

简介: 杨辉三角(递归)c++

洛谷 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;
}
相关文章
汉诺塔问题(递归)/梵塔问题c++
汉诺塔问题(递归)/梵塔问题c++
|
算法 C++
C++快速幂(递归)
C++快速幂(递归)
|
6月前
|
设计模式 中间件 程序员
【C/C++ 奇异递归模板模式 】C++中CRTP模式(Curiously Recurring Template Pattern)的艺术和科学
【C/C++ 奇异递归模板模式 】C++中CRTP模式(Curiously Recurring Template Pattern)的艺术和科学
331 3
|
5月前
|
算法 C++
算法笔记:递归(c++实现)
算法笔记:递归(c++实现)
|
6月前
|
C++
C++ 递归与面向对象编程基础
C++ 递归是函数自我调用的技术,用于简化复杂问题。以递归求和为例,`sum` 函数通过不断调用自身累加数字直到 `k` 为 0。递归需谨慎,避免无限循环和资源浪费。面向对象编程(OOP)将程序划分为交互对象,具有属性和方法,提升代码复用、维护和扩展性。C++ OOP 基本概念包括类、对象、属性和方法。通过创建类和对象,利用点语法访问成员,实现代码组织。
48 0
|
6月前
|
Java Go Python
Golang每日一练(leetDay0103) 区域和检索1~3
Golang每日一练(leetDay0103) 区域和检索1~3
58 0
Golang每日一练(leetDay0103) 区域和检索1~3
|
6月前
|
Java Go C++
C/C++每日一练(20230424) 只出现一次的数字、有效的括号、递归反序正整数
C/C++每日一练(20230424) 只出现一次的数字、有效的括号、递归反序正整数
58 0
C/C++每日一练(20230424) 只出现一次的数字、有效的括号、递归反序正整数
|
6月前
|
算法 C++ Java
C/C++每日一练(20230421) 位1的个数、递归和非递归求和、俄罗斯套娃信封问题
C/C++每日一练(20230421) 位1的个数、递归和非递归求和、俄罗斯套娃信封问题
42 0
C/C++每日一练(20230421) 位1的个数、递归和非递归求和、俄罗斯套娃信封问题
|
6月前
|
C++
杨辉三角(C++)
杨辉三角(C++)
78 1
|
6月前
|
C++ 索引
杨辉三角 II(C++)
杨辉三角 II(C++)
40 0