当前位置: 首页 > article >正文

打印杨辉三角形

问题描述

利用队列相关操作实现打印输出指定行数的杨辉三角形。

输入描述

输入要打印的行数,15>n>0。

输出描述

输出杨辉三角形。

注:每个数字设置4个域宽,上一行的第一个数字比下一行第一个数字右缩进2个空格。

样例输入
3
样例输出
       1
     1   1
   1   2   1 

具体分析过程文字叙述不清,视频讲解更加详细一些,在这里向大家推荐B站视频链接 

http://【3.6链队列和队列的应用(包括杨辉三角)-2 考研《数据结构C语言版》严蔚敏知识点讲解】https://www.bilibili.com/video/BV1we411V7W6?vd_source=1e0249467f7f18bba256fc882a4d9649

具体内容在48:13 ,个人认为up主讲解的非常好!

#include<stdio.h>
#include <stdlib.h>
#define MAXSIZE 100
typedef int DataType;
typedef struct Node
{
	DataType data[MAXSIZE];
	int front;
	int rear;
}CirQueue;

static void InitQueue(CirQueue& Q)  //初始化队列
{
	
	Q.front = Q.rear = 0;
	return;
}
static void EnQueue(CirQueue& Q, int num)  //元素入队
{
	Q.data[Q.rear] = num;
	Q.rear = (Q.rear + 1) % MAXSIZE;
	return;
}
static int DeQueue(CirQueue& Q)  //元素出队
{
	int x = Q.data[Q.front];
	Q.front = (Q.front + 1) % MAXSIZE;
	return x;
}
int main()
{
	CirQueue Q;
	InitQueue(Q);
	EnQueue(Q, 1);  //将1入队
	int n = 0;
	scanf("%d", &n);  //输入打印行数
	for (int i = 0; i < n; i++)
	{
		for (int k = n - 1; k > i; k--)  //打印每行前面的空格
			printf("  ");
		for (int j = 0; j < i; j++)  
		{
			int left = Q.data[Q.front];  //队列第一个元素
			printf("%4d", DeQueue(Q));
			int right = Q.data[Q.front];  //队列第二个元素
			EnQueue(Q, left + right);  
		}
		printf("   1\n");
		EnQueue(Q, 1);  //将1入队
	}
	return 0;
}
结果展示:

 


http://www.kler.cn/a/350279.html

相关文章:

  • WPF2-在xaml为对象的属性赋值
  • qml OpacityMask详解
  • ui文件转py程序的工具
  • (10)深入浅出智能合约OpenZeppelin开源框架
  • KVM创建ubuntu20.04虚机,部署K8S,再克隆出二份,做为Worker节点加入集群,通过Helm创建2个Pod,让它们之间通过域名互访
  • 直驱式风电储能制氢仿真模型matlab/simulink
  • 用Cursor开发了一个图片分割器
  • 观察者模式和发布-订阅模式的区别
  • 汽车结构设计外覆盖件抗凹分析的意义和分类
  • HarmonyOS Next模拟器异常问题及解决方法
  • 信息和介质的辩证
  • 智能化企业新人培训:AI助理如何加速新员融入与成长
  • 遥感图像处理又上大分!加个多模态,一篇A会到手~
  • 洛谷P1484.种树
  • 【Linux】基本认知全套入门
  • docker启动的rabbitmq如何启动其SSL功能
  • 嵌入式中数据库sqlit3基本使用方法与现象
  • 十、结构型(外观模式)
  • Gin框架操作指南02:JSON渲染
  • 利用 Llama 3.1模型 + Dify开源LLM应用开发平台,在你的Windows环境中搭建一套AI工作流
  • 理解前端开发和小程序开发中的 build 和 dev 模式
  • 迪杰斯特拉算法的理解
  • Content-Type 详解
  • 打破医院内外网通讯壁垒的关键-消息摆渡
  • mysql用户管理(user表列信息介绍,本质,管理操作),数据库的权限管理(权限列表,权限操作)
  • MySQL 通过 Next-Key Locking 技术(行锁+间隙锁)避免幻读问题