(递归)杨辉三角实现

2023-11-17

问题描述

杨辉三角形又称Pascal三角形,它的第i+1行是(a+b)i的展开式的系数。

  

它的一个重要性质是:三角形中的每个数字等于它两肩上的数字相加。

  

下面给出了杨辉三角形的前4行:

  

1

  

1 1

  

1 2 1

  

1 3 3 1
———————————————

思路:可以用二维数组实现,且二维数组第一列和最后一列全为1,从第三列开始,每个数等于上面两个数之和即f(x,y)=f(x-1,y-1)+f(x-1,y)

实现:使用递归实现当不为第一列或最后一列(即y等于0或x等于y时),递归调用自身实现。使用双层for循环嵌套遍历调用递归函数,求出每个位置的数且输出。

代码:

#include<bits/stdc++.h>
int f(int x,int y){
	if(y==0||x==y)
	return 1;
	else {
		return f(x-1,y-1)+f(x-1,y);
	}
}
using namespace std;
int main(){
	int a[100][100];
	int n;
	cin>>n;
	for(int i=0;i<n;i++){
		for(int j=0;j<=i;j++)
		cout<<f(i,j)<<" ";
		cout<<endl;
	} 
	return 0;  
} 

--------------------------------------------------------------------------------------------------

2022.10.23

突然发现使用递归容易超时,还是老老实实用for吧

#include<bits/stdc++.h>
using namespace std;
int main(){
	int a[100][100];
	int n;
	cin>>n;
	for(int i=0;i<n;i++){
        a[i][0]=1;
        for(int j=1;j<=i;j++){
            a[i][j]=a[i-1][j]+a[i-1][j-1];
        }
    }
	for(int i=0;i<n;i++){
		for(int j=0;j<=i;j++)
		cout<<a[i][j]<<" ";
		cout<<endl;
	} 
	return 0;  
} 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

(递归)杨辉三角实现 的相关文章

随机推荐

  • 成功解决ubuntu-22.04的sudo apt-get update一直卡在【0% [Waiting for headers]】

    成功解决ubuntu 22 04的sudo apt get update一直卡在 0 Waiting for headers 问题描述 解决方案 问题描述 在下载安装包的时候一直卡在0 Waiting for headers 报错信息如下
  • 【动态内存管理】

    目录 前言 一 动态内存开辟函数 一 malloc 二 free 三 calloc 四 realloc 二 常见错误 一 对NULL指针解引用 二 对动态开辟空间的越界访问 三 对动态开辟内存多次free 四 未在初始位置进行free 五
  • 软件技术国产化

    软件技术国产化 如果大家做的项目是涉及国企 政府 校园的 应该都有听过 技术国产化 其实不单单是软件开发这一块 其它行业也会有这一说法 自从中美之间发生贸易战 美国对中国一些企业进行制裁 甚至封杀 像我们软件开发这行 会限制一些开发工具 技
  • 【面试题】java常考面试题

    java中sleep方法和wait方法的区别 sleep是线程中的方法 但是wait是Object中的方法 sleep方法不会释放锁 但是wait会释放锁 sleep方法不依赖于同步器synchronized 但是wait需要依赖synch
  • 进程-进程标识符

    什么是进程标识符 系统给每个进程定义了一个唯一标识该进程的非负正数 称作进程标识符 进程标识符可以简单的表示为主进程表中的一个索引 当某一进程终止后 其标识符可以重新用作另一进程的标识符 不过 在任何时刻 一个标识符所代表的进程是唯一的 系
  • 在VMware Workstation Pro中安装Windows 11正式版(包括添加TPM 2.0支持,而不是忽略)

    目录 0 首先检查Windows 11需要的环境 1 创建一个虚拟机 1 1 选择使用下载好的Windows11镜像 1 2 选择操作系统为Windows 10 x64 1 3 给虚拟机系统起个名字并指定存放路径 1 4 把创建的虚拟硬盘大
  • JDBC程序具体实现步骤演示

    再熟悉JDBC的编程步骤后 接下来通过一个案例并依照上一小节所讲解的步骤来演示JDBC的使用 此案例会从tb user表中读取数据 并将结果打印在控制台 需要说明的是 Java中的JDBC是用来连接数据库从而执行相关数据相关操作的 因此在使
  • 如何科学地利用高光谱图像合成真彩色RGB图像?

    如何科学地利用高光谱图像合成真彩色RGB图像 1 前言 参考链接 色匹配函数是什么 知乎 zhihu com 23 颜色知识1 人类的视觉系统与颜色 知乎 zhihu com 色彩空间基础 知乎 zhihu com 色彩空间表示与转换 知乎
  • BeanCopier对象复制学习

    BeanCopier是Cglib包中的一个类 用于对象的复制 注意 目标对象必须先实例化 而且对象必须要有setter方法 初始化例子 BeanCopier copier BeanCopier create Source class Tar
  • 零信任架构

    零信任架构 参考文章 基于SDP技术构建零信任安全 怎样实现零信任安全架构 什么是零信任 物理边界曾经是可信网络和不可信网络之间的有效分割 防火墙通常位于网络的边缘 基于静态策略来控制网络流量 位于防火墙内部的用户会被授予高信任等级来访问企
  • Flutter笔记(二)

    一 Android 集成 Flutter 实现流程 闲鱼 头条 在 Android 集成 Flutter 模块都有自己的实现方案 闲鱼团队方案 头条团队方案 我们以官方方案方式为主 一 Android 集成 Flutter 实现流程 闲鱼
  • 区块链+教育 解决教育行业所面临的问题

    众所周知 教育对于一个国家 一个民族来说是成就未来的重要方式 它的社会职能 就是传递生产经验和社会生活经验 促进新生一代的成长 但是教育行业也有被一些问题困扰着 怎样运用区块链技术解决这些问题 1 完善学籍档案管理 我们都知道 现在很多地方
  • 基于规则的优化

    MySQL会对用户编写的查询语句执行一些重写操作 比如 移除不必要的括号 常量传递 移除没用的条件 表达式计算 最好让那个索引列以单独的形式出现在搜索条件表达式中 HAVING子句和WHERE子句的合并 如果查询语句中没用出现诸如 SUM
  • java web项目答辩答辩题总结(书本网上语言答辩+自己的语言答辩)

    答辩每个人的总分为1 5分 每个人主要问3个问题 开发流程 系统架构 项目模块 功能 项目得失重定向与转发 九个隐式对象 get与post的区辨 jsp有静态包含 动态包含 两者的区辨 什么是MVC web系统架构 java web项目答辩
  • 虚拟机ubuntu18.04桥接模式详解

    背景 虚拟机ubuntu18 04桥接模式下 配置静态ip 配置静态ip vim etc network interfaces 具体配置如下 auto lo iface lo inet loopback auto ens33 iface e
  • 算法题Day6-第三大的数

    给定一个非空数组 返回此数组中第三大的数 如果不存在 则返回数组中最大的数 要求算法时间复杂度必须是O n 示例 1 输入 3 2 1 输出 1 解释 第三大的数是 1 示例 2 输入 1 2 输出 2 解释 第三大的数不存在 所以返回最大
  • SQL查询结果按照指定内容排序

    一般来说 我们在开发SQL脚本的时候 遇到需要排序的内容 用order by需要排序的字段就可以满足我们排序的需求 asc为升序 desc为降序 不指定关键字默认为升序 但是有时候 我们需要的排序不仅仅是升序和降序 asc与desc并不能满
  • Kibana 7.X 导出CSV报告

    背景 由于有时候需要基于日志做一些处理 由官网得知 ES7 3 0发布的新特性 从保存的搜索中导出CSV 我们的Kibana刚好是7 3 0 于是将自己的使用经验及解决的问题 分享给有需要的小伙伴 一 使用步骤 1 1 保存搜索 Disco
  • Spring Cloud 与 Dubbo 冲突吗——强强联合

    微服务开发选型 到底是基于 Dubbo 还是 Spring Cloud 相信不少开发的小伙伴都有拿这两个项目作过作比较的经历 本章节就带你走近这两个项目 二者究竟是竞争发展还是融合共赢 项目发展简介 我们还是先来看看 Dubbo 的发展历史
  • (递归)杨辉三角实现

    问题描述 杨辉三角形又称Pascal三角形 它的第i 1行是 a b i的展开式的系数 它的一个重要性质是 三角形中的每个数字等于它两肩上的数字相加 下面给出了杨辉三角形的前4行 1 1 1 1 2 1 1 3 3 1 思路 可以用二维数组