博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第三章:队列及其应用之一---输出杨辉三角
阅读量:5163 次
发布时间:2019-06-13

本文共 1720 字,大约阅读时间需要 5 分钟。

#include 
#include
#define N 100#define OK 1#define ERROR 0int f[N]={
0,1,1,0};//使用一个队列输出n行杨辉三角;/*技巧: 为使第i行与第i+1行数据可以区分开,在两行之间放入一个数字0;*/void Print1(int n){ //自己的算法使用一个队列输出杨辉三角; int i,j,m; //n代表打印n行; printf("这是一个打印杨辉三角的函数:\n"); i=1;j=4; /*j=(j+1)%N;*/ while(n--) { do{ int t; if(i==0) t=N-1; else t=i-1; //防止当i=0时,i-1溢出; f[j]=f[i]+f[t]; if(f[j]) printf("%d ",f[j]); i=(i+1)%N;j=(j+1)%N; m=i-1; if(m==-1) m=N-1; }while(f[m]);//当f[m]为0时,计算当下并在后面补0,并退出这一重循环; f[j]=0; j=(j+1)%N; printf("\n"); }}typedef struct LinkList{ int *x; int base,top;}LinkList;LinkList L;void ChuShi(LinkList &L){ //初始化队列函数; L.x = new int[N]; L.top=L.base=0; printf("队列初始化完毕!\n");}void Jin(LinkList &L,int m){ //将数值m插入队尾; L.x[L.base]=m; L.base=(L.base+1)%N;}void Chu(LinkList &L,int &t){ //最前方的系数出队; t=L.x[L.top]; L.top=(L.top+1)%N;}void yanghui(int n){ //书上的方法,也是使用一个队列输出杨辉三角,但具体操作有所不同! /* 好处: 当你向队列中队尾加入元素的时候,只需要将值得多少传入函数中即可, 而不需要再去记录队尾的位置,这个在队列的结构体中自己有所体现! */ int i,j; Jin(L,1);Jin(L,1); int s=0,t; for(i=1;i<=n;i++) { Jin(L,0);//各行之间插入一个0表示区分; for(j=1;j<=i+2;j++) { //处理第i行的i+2个元素; Chu(L,t); Jin(L,s+t); s=t; if(j!=i+2) printf("%d ",s); } printf("\n"); }}int main(){ printf("请输入需要打印的杨辉三角的行数:\n"); int x; scanf("%d",&x); /*自己的方法: printf("1 1\n"); Print1(x); */ //书上的方法: ChuShi(L); yanghui(x); return 0;}

 

转载于:https://www.cnblogs.com/songacm/p/3356139.html

你可能感兴趣的文章
《avascript 高级程序设计(第三版)》 ---第二章 在HTML中使用Javascript
查看>>
JS一些概念知识及参考链接
查看>>
TCP/IP协议原理与应用笔记24:网际协议(IP)之 IP协议的简介
查看>>
SAP HANA开发中常见问题- 基于SAP HANA平台的多团队产品研发
查看>>
游戏中的心理学(一):认知失调有前提条件
查看>>
WHAT I READ FOR DEEP-LEARNING
查看>>
【Ruby】Ruby在Windows上的安装
查看>>
Objective C 总结(十一):KVC
查看>>
BZOJ 3747 洛谷 3582 [POI2015]Kinoman
查看>>
vue实战(7):完整开发登录页面(一)
查看>>
Visual Studio自定义模板(二)
查看>>
【Mood-20】滴滤咖啡做法 IT工程师加班必备 更健康的coffee 项目经理加班密鉴
查看>>
读《构建之法-软件工程》第四章有感
查看>>
使用 Printf via SWO/SWV 输出调试信息
查看>>
.net 分布式架构之分布式锁实现(转)
查看>>
吴恩达机器学习笔记 —— 3 线性回归回顾
查看>>
Problem E: Automatic Editing
查看>>
SpringBoot 使用 MyBatis 分页插件 PageHelper 进行分页查询
查看>>
《DSP using MATLAB》Problem 6.17
查看>>
微信公众平台开发实战Java版之如何网页授权获取用户基本信息
查看>>