2 ridish ridish 于 2014.12.16 19:21 提问

杨辉三角等腰三角形求解

#include
#include
#define OK 1
#define ERROR -1
#define OVERFLOW -2
#define MAXQSIZE 100

typedef int Status;
typedef struct{
int *base;
int front;
int rear;
}SqQueue;

Status InitQueue(SqQueue &Q)
{
Q.base=(int *)malloc(MAXQSIZE*sizeof(int));
if(!Q.base) exit(OVERFLOW);
Q.front=Q.rear=0;
return OK;
}

Status EnQueue(SqQueue &Q,int e)
{
if((Q.rear+1)%MAXQSIZE==Q.front) return ERROR;
Q.base[Q.rear]=e;
Q.rear=(Q.rear+1)%MAXQSIZE;
return OK;
}

Status DeQueue(SqQueue &Q,int &e)
{
if(Q.front==Q.rear) return ERROR;
e=Q.base[Q.front];
Q.front=(Q.front+1)%MAXQSIZE;
return OK;
}

Status GetHead(SqQueue Q,int &e)
{
e=Q.base[Q.front];
return OK;
}

void Print(int n)
{
SqQueue Q;
int i,s,e;
InitQueue(Q);
EnQueue(Q,0);
EnQueue(Q,1);
EnQueue(Q,0);
for(i=1;i<=n;i++)
{
do
{
DeQueue(Q,s);
GetHead(Q,e);
if (e!=0)
printf ("%d ", e);
EnQueue(Q,s+e);
}while(e!=0);
printf("\n");
EnQueue(Q,0);
}
}

int main()
{
int n;
scanf("%d",&n);
Print(n);
return 0;
}

5个回答

devmiao
devmiao   Ds   Rxr 2014.12.17 04:15

就你贴出的程序,是使用队列的方式来求解杨辉三角形的思路。

参考:http://wenku.baidu.com/link?url=EIIRbGqPNZByXxhD-5nlAbb1os_xzFGD0Br9pIDcSGfdLlNC4Bzlf7PcKu0IlqG53LVtTUe4uhZGbqZsQyOSDIr6ev7Q9T8RATGFx8Qx0dq

save4me
save4me   Ds   Rxr 2014.12.17 00:16
wangyaninglm
wangyaninglm   Ds   Rxr 2014.12.16 20:48

你的有什么问题么?我看对着呢啊

save4me
save4me   Ds   Rxr 2014.12.18 09:28

上面的答案有帮助吗?如果还有问题,请提出来,如果对答案满意,请顶一下,并标记为采纳答案,谢谢!

qqlindexi
qqlindexi   2014.12.16 19:45

#include
void main()
{
int i,j,n=13;
printf("N=");
while(n>12)
scanf("%d",&n); /*控制输入正确的值以保证屏幕显示的图形正确*/
for(i=0;i<=n;i++) /*控制输出N行*/
{
for(j=0;j<24-2*i;j++) printf(" "); /*控制输出第i行前面的空格*/
for(j=1;j<i+2;j++) printf("%4d",c(i,j)); /*输出第i行的第j个值*/
printf("\n");
}
}

int c(int x,int y) /*求杨辉三角形中第x行第y列的值*/
{
int z;
if((y==1)||(y==x+1)) return 1; /*若为x行的第1或第x+1列,则输出1*/
z=c(x-1,y-1)+c(x-1,y); /*否则,其值为前一行中第y-1列与第y列值之和*/
return z;
}

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
杨辉三角的等腰输出
//杨辉三角:利用递归关系在一个函数中实现 //C语言初学者,在运算符的前后没有空格,请见谅 #include "stdio.h" #define N 5 int main() {   int a[N][N]={0},i,j; //给a[N][N]赋初值0,为 三角形的末位1做铺垫     for ( i=0;i         a[i][0]=1;              
java输出等腰三角形杨辉三角
可以输出等腰三角形杨辉三角。
杨辉三角(等腰三角形)
main(){ int i,j,t; int a[10][10]; for(i=0;i      {        a[i][0]=1;a[i][i-1]=1;         }  for(i=0;i       {          for(j=0;j              {                a[i][j]=a[i-1][j-
输出指定行杨辉三角形(等腰三角形型)
#include #include int main() { int a[100][100]={0}; int i,j,n; printf("Input N:"); scanf("%d",&n); for(i=0;i { for(j=0;j { if(j else if(i==0) break; else a[i][j]=a[i-1][j-1]+a[i-1][j]
java使用一维数组输出杨辉三角
一维数组输出杨辉三角
java使用一维数组输出杨辉三角形
题目:打印出杨辉三角形的前十行,杨辉三角形前几行如下排列: 1  1 1  1 2 1  1 3 3 1  1 4 6 4 1  1 5 10 10 5 1  java代码实现: public class YangHui { public static void main(String[] args) { int[] uprowData = new int[10];//
【C语言】杨辉三角(等腰三角)
前言:杨辉三角,是二项式系数在三角形中的一种几何排列。在欧洲,这个表叫做帕斯卡三角形。帕斯卡(1623----1662)是在1654年发现这一规律的,比杨辉要迟393年,比贾宪迟600年。杨辉三角是中国古代数学的杰出研究成果之一,它把二项式系数图形化,把组合数内在的一些代数性质直观地从图形中体现出来,是一种离散型的数与形的结合。等腰杨辉三角雏形:代码如下:#include &amp;lt;stdio.h&amp;...
用队列解决数据结构经典问题:杨辉三角形问题。
                    1                  1  1                1  2  1               1 3   3  1              1 4  6  4  1就是下面的元素是这个元素“肩膀上”的两个元素之和。思路:首先初始化一个队列,元素为1,然后根据这个队列迭代生成任意行的二项式系数。判断用户输入的行数,然后决定循环次数。这些循环中,程序根据杨辉三角的实际构造函数模拟构造过程。每次形成一个新的二项式系数序列,并将这个序列 保持在一
php输出杨辉三角
<?php { for($i=1;$i<=$n;$i++) { for($k=1;$k<=$n-$i;$k++) echo "&nbsp;&nbsp;";
打印杨辉三角 --JS
var arr = new Array(); for(var i = 0 ;i < 6 ; i++){ if(i == 0){arr.push(1);} else if(i == 1){arr = new Array();arr.push(1);arr.push(1);} else{ var arr2 = new Array(); arr2.push(1); for(var j = 0;j<ar