【寒假每日一题】DAY.10 杨辉直角(等腰)三角

news2024/9/27 23:24:20

目录

一、杨辉直角三角

                思路

                按部就班

                代码实现

二、杨辉等腰三角


注:由于VS不支持变长数组,这里我就用n=4来写

一、题目名称

题目内容:
输入一个数n,在屏幕上打印n行n列的杨辉三角。

例如:

输入:4

输出:
1
1 1
1 2 1
1 3 3 1

二、思路

以4行4列的杨辉三角为例

首先,可以把数据存在一个i行j列的二维数组里

其次,通过规律可以发现,最左边的一列为1、斜对角线也为1

然后,如下图,中间部分都是上一行的两个相邻的数相加得到的

最后,打印出来就行了

详细的细节都在【按部就班】

三、按部就班

首先,创建一个4行4列的二维数组,并分别用i、j遍历行和列

#include <stdio.h>
int main()
{
	int arr[4][4] = { 0 };//创建二维数组并初始化

	for (int i = 0; i < 4; i++) 
	{
		for (int j = 0; j < 4; j++)
		{

		}
	}

	return 0;
}

其次,通过规律可以发现,最左边的一列为1、斜对角线也为1,所以只要将j==0或者i==j上的二维数组赋值为1即可

#include <stdio.h>
int main()
{
	int arr[4][4] = { 0 };//创建二维数组并初始化

	for (int i = 0; i < 4; i++) 
	{
		for (int j = 0; j < 4; j++)
		{
			//将斜对角线和左列赋值为1
			if (i == j || j == 0)
			{
				arr[i][j] = 1;
			}
		}
	}

	return 0;
}

然后,中间部分都是上一行的两个相邻的数相加得到的

如上图,当i >= 2 并且 j >= 1时,中间部分通过上一行的两个相邻的数相加

#include <stdio.h>
int main()
{
	int arr[4][4] = { 0 };//创建二维数组并初始化

	for (int i = 0; i < 4; i++) 
	{
		for (int j = 0; j < 4; j++)
		{
			//将斜对角线和左列赋值为1
			if (i == j || j == 0)
			{
				arr[i][j] = 1;
			}
			//中间部分
			if (i >= 2 && j >= 1)
			{
				arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j];
			}
		}
	}

	return 0;
}

 最后,打印出来就行了

如上图,打印只要打印出斜对角线以下(包括斜对角线)的元素,也就是i >= j即可,别忘了打印完一行需要换行

【代码实现】

#include <stdio.h>
int main()
{
	int arr[4][4] = { 0 };//创建二维数组并初始化

	for (int i = 0; i < 4; i++) 
	{
		for (int j = 0; j < 4; j++)
		{
			//将斜对角线和左列赋值为1
			if (i == j || j == 0)
			{
				arr[i][j] = 1;
			}
			//中间部分
			if (i >= 2 && j >= 1)
			{
				arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j];
			}
		}
	}
	//打印
	for (int i = 0; i < 4; i++)
	{
		for (int j = 0; j < 4; j++)
		{
			if (i >= j)
			{
				printf("%d ", arr[i][j]);
			}
		}
		printf("\n");
	}

	return 0;
}

程序运行结果:

 四、杨辉直角三角

这个和打印菱形差不多,大家可以去参考 ---->  打印菱形(我还在评论区给出一个打印圣诞树的OJ链接,也和这个很像)

这里我就直接给出代码了

#include <stdio.h>

int main()
{
	int arr[4][4] = { 0 };//创建二维数组并初始化

	for (int i = 0; i < 4; i++)
	{
		for (int j = 0; j < 4; j++)
		{
			//将斜对角线和左列赋值为1
			if (i == j || j == 0)
			{
				arr[i][j] = 1;
			}
			//中间部分
			if (i >= 2 && j >= 1)
			{
				arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j];
			}
		}
	}

	//和打印菱形差不多
	for (int i = 0; i < 4; i++)
	{
		//先打印空格
		for (int j = 0; j < 4 - 1 - i; j++)
		{
			printf(" ");
		}
		//打印数字
		for (int j = 0; j <= i; j++)
		{
			printf("%d ",arr[i][j]);
		}
		printf("\n");
	}
	return 0;
}

程序效果:

因为vs不支持变长数组,若要打印n行n列,就把4换掉就行

比如打印9行9列

 2023年1月18日

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/170188.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CSRF与XSS组合拳

目录 先介绍下这两个漏洞&#xff1a; CSRF XSS 实验&#xff1a; 环境&#xff1a; CSRF与反射型xss的第一拳 CSRF与存储型XSS的第二拳&#xff1a; 先介绍下这两个漏洞&#xff1a; CSRF CSRF是跨站请求伪造攻击&#xff0c;由客户端发起,是由于没有在关键操作执行时进…

美团滑块(1-18,js逆向)

网址&#xff1a;aHR0cHM6Ly9wYXNzcG9ydC5tZWl0dWFuLmNvbS9hY2NvdW50L3VuaXRpdmVsb2dpbg整体流程&#xff1a; 1、获取主页参数 2、逆向pwd、h5Fingerprint 3、请求page_data链接 4、逆向Authencation、behavior、token_ 5、最终请求验证一、获取主页参数 url_ "https:/…

信息论复习—信息论的基本概念

信息的概念&#xff1a;古代的信息技术&#xff1a;现代的信息技术信息与消息的关系&#xff1a;消息&#xff1a;用文字、符号、数据、语言、音符、图片、图像等能够被人们感觉器官所感知的形式&#xff0c;把客观物质运动和主观思维活动的状态表达出来就称为消息。信息&#…

Flink 实时计算DIM层实现方案

1 概述 DIM层设计要点&#xff1a; &#xff08;1&#xff09;DIM层的设计依据是维度建模理论&#xff0c;该层存储维度模型的维度表。 &#xff08;2&#xff09;DIM层的数据存储在 HBase 表中DIM 层表是用于维度关联的&#xff0c;要通过主键去获取相关维度信息&#xff0c;…

html2canvas移动端使用问题及解决

1、jsbridge重复调用问题现象&#xff1a;与移动端进行通信&#xff0c;通过<script>标签里的jsbridge.js来调用端上的接口&#xff0c;在调用接口之后&#xff0c;调用html2canvas来生成图片&#xff0c;发现刚才调用的接口又被调用了一次解决方案&#xff1a;在html2ca…

比YOLOv8还要强的YOLOv6 v3.0

论文地址&#xff1a;https://arxiv.org/pdf/2301.05586.pdf 开源地址&#xff1a;https://github.com/meituan/YOLOv6 YOLOv6 v3.0的主要贡献简述如下&#xff1a; 对检测器的Neck部件进行了翻新&#xff0c;引入BiC(Bi-directional Concatenation)提供更精确的定位信息&…

好看的vscode深色主题,搜索主题名称即可设置

1.watermelon-theme 西瓜颜色的主题&#xff0c;满满的夏天感&#xff0c;红色交替的温柔。 2.Kawaine Theme 好看的粉色系主题&#xff0c; 3. Feminine Color Theme 很适合女孩子的一个主题&#xff0c;好看如其名。 4.pinkFlower-theme 这个真的超粉&#xff0c;很好看的…

Python采集常用:谷歌浏览器驱动——Chromedriver 插件安装教程

人生苦短 &#xff0c;我用Python 趁放假&#xff0c;偷偷卷起来&#xff01;&#xff01;&#xff01; 我们经常要使用谷歌浏览器驱动&#xff0c; 今天分享下这个Chromedriver 插件的安装方法。 一、打开谷歌浏览器打开设置面板 二、查看当前谷歌浏览器版本号 三、点击插件…

计算机取证科普性基础

内容为美亚柏科公开课笔记。 1 Windows系统与取证 1.1 存储介质取证概述 专业名词 未分配空间文件残留区 物理大小逻辑大小文件大小物理大小-逻辑大小 临时文件 C:\Windows\Temp*.tmpC:\Documents and Settings\Username\Local Setting\Temporary Internet FilesC:\Documen…

接口超时分析

原文&#xff1a;接口突然超时&#xff01;&#xff01;&#xff01; 1、网络异常 1.1、网络抖动 经常上网的我们&#xff0c;肯定遇到过这样的场景&#xff1a;大多数情况下我们访问某个网站很快&#xff0c;但偶尔会出现网页一直转圈&#xff0c;加载不出来的情况。 有可…

centos7 升级 gcc 版本

查看动态库版本 strings /usr/lib64/libstdc.so.6 | grep CXXABI查找gcc生成的最新动态库 find / -name "libstdc.so*"方法一&#xff1a; 1、查看当前gcc版本 #默认4.8.5 g -v 或者 gcc --version2、下载gcc源码&#xff08;10.2.0&#xff09; wget https://f…

2022.12青少年软件编程(Python)等级考试试卷(六级)

2022.12.10青少年软件编程(Python)等级考试试卷(六级) 一、单选题(共25题,共50分) 1.数据文件“abc.txt”中包含若干个英文单词,如图所示: 读取文件“abc.txt”中数据的Python程序段如下: file = abc.txt word_b = [] for word in open(file): if w…

spring boot支持https请求(建议收藏)

文章目录前言一、借助keytools二、详细步骤三、配置spring项目支持https总结前言 博主个人社区&#xff1a;开发与算法学习社区 博主个人主页&#xff1a;Killing Vibe的博客 欢迎大家加入&#xff0c;一起交流学习~~ 众所周知&#xff0c;http是不安全的协议&#xff0c;那么要…

OC/Swift 技术 链接跳转外置(内置)Safari/加载网页(源码)

一直觉得自己写的不是技术&#xff0c;而是情怀&#xff0c;一个个的教程是自己这一路走来的痕迹。靠专业技能的成功是最具可复制性的&#xff0c;希望我的这条路能让你们少走弯路&#xff0c;希望我能帮你们抹去知识的蒙尘&#xff0c;希望我能帮你们理清知识的脉络&#xff0…

javascript将地址转换为经纬度_调用百度地图API_地址解析

1、注册账号和密钥申请 百度地图 选择&#xff0c;开发文档->javascriptAPI 进入后先进行账号和密钥获取&#xff0c;并且申请成为百度开发者&#xff0c;点击使用方法内的步骤即可跳转 获取服务密钥ak 应用类型选择浏览器端 白名单自己设置&#xff1a;只有白名单中的网站…

【博客595】从linux收包与发包过程看iptables链如何发挥作用

从linux收包与发包过程看iptables链如何发挥作用 1、linux收包过程&#xff08;以udp包为例&#xff09; 2、linux发包过程&#xff08;以udp包为例&#xff09; 3、收发包过程中iptables的hook如何发挥作用 主要分为三个部分&#xff1a; 接收数据的处理流程是&#xff1a;…

【Kubernetes 企业项目实战】04、基于 K8s 构建 EFK+logstash+kafka 日志平台(中)

目录 一、安装存储日志组件 Elasticsearch 1.1 创建名称空间 1.2 安装 elasticsearch 组件 1&#xff09;创建 headless service 服务 2&#xff09;通过 statefulset 创建 elasticsearch 集群 二、安装 kibana 可视化 UI 界面 一、安装存储日志组件 Elasticsearch 1.1 …

django框架全解

目录简介MVC与MTV模型MVCMTV创建项目目录生命周期静态文件配置&#xff08;无用&#xff09;启动django路由分组无名分组有名分组路由分发反向解析反向解析结合分组名称空间re_path与path自定义转换器视图HttpRequest常用方法HttpResponseJsonFBV和CBV模板&#xff08;前后端分…

SpringBoot+VUE前后端分离项目学习笔记 - 【24 服务器安装部署】

本节主要实现服务器购买以及服务部署 PS: 由于没有服务器本节仅做大致流程记录&#xff0c;无实际操作步骤 服务器配置安装 文档&#xff1a;docker安装centos、jdk、mysql、redis… 链接&#xff1a;http://note.youdao.com/noteshare?id6a01550a3acfbafc7cbbea4ae99c0e48&a…

嵌入式Linux-进程间通信

1.进程间通信 1.1 进程间通信的介绍 进程间通信&#xff08;interprocess communication&#xff0c;简称 IPC&#xff09;指两个进程之间的通信。系统中的每一个进程都有各自的地址空间&#xff0c;并且相互独立、隔离&#xff0c;每个进程都处于自己的地址空间中。所以同一…