文档介绍:实验四杨辉三角显示
一. 问题描述:
编写程序,根据输入的行数,屏幕显示杨辉三角。
二. 基本要求:
行数不大于20行。
基于队列的操作来实现杨辉三角的不断生成过程。(注:不要用其它的公式计算的方法或者二维数组来实现)
(3)基于数组实现队列的物理数据结构
三. 需求分析:
1、输入形式:输入一个整数n ,0<=n<=20
2、输出形式:打印出来前(n+1)行的杨辉三角数列
3、功能实现:输出前20层的杨辉三角序列
4、样例输入输出:(数据加强版)
输入:10
输出:
1 n=1
1 1 n=2
1 2 1 n=3
1 3 3 1 n=4
1 4 6 4 1 n=5
1 5 10 10 5 1 n=6
1 6 15 20 15 6 1 n=7
1 7 21 35 35 21 7 1 n=8
1 8 28 56 70 56 28 8 1 n=9
1 9 36 84 126 126 84 36 9 1 n=10
5、效率分析:O(n)
既然要用到队列来打印杨辉三角,那么肯定会利用到队列FILO的性质(First In Lase Out),由于是要打印一个数列,那么肯定要利用已经进队的元素在其出队之前完成杨辉三角的递归性----即利用要出队的元素来不断地构造新的进队的元素,即在第N行出队的同时,我们来构造杨辉三角的第N+1行,从而实现打印杨辉三角的目的。
:
#include<iostream>
using namespace std;
# define MaxSize 1001
typedef struct
{
double st[MaxSize];
int top;
}Stack;
int main()
{
int t;
cin>>t;
getchar();
while(t--)
{
Stack S;
=-1;
char ch;
bool f=1;
while(cin>>ch,ch!='#')
{
if(ch==' ') continue;
if(f)
{
// cout<<ch<<endl;
if(ch>='0' && ch<='9')
[++]=ch-'0';
else
{
if(S.