杨辉三角型的问题?请教

xiaoliang_c 2009-02-24 02:10:54
把杨辉三角型用数组的形式输出(要求输出10行)
要思路和算法
不好意思研究了半天也不会用数组求!

1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
.
.
.
.
.
.
.
...全文
86 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaoliang_c 2009-02-24
  • 打赏
  • 举报
回复
哦 对了这好想是函数的调用.用数组的方式来一个!
xiaoliang_c 2009-02-24
  • 打赏
  • 举报
回复
谢了 !
waizqfor 2009-02-24
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 xiaoliang_c 的回复:]
这好象是C++的! 能讲解一下吗?
[/Quote]
你把输入 cout 换成 printf就可以了 头文件改成stdio.h 就可以了
给你个完整的

杨辉三角形中的数,正是(x+y)的N次方幂展开式各项的系数。本题作为程序设计中具有代表性的题目,求解的方法很多,这里仅给出一种。
从杨辉三角形的特点出发,可以总结出:
1)第N行有N+1个值(设起始行为第0行)
2)对于第N行的第J个值:(N>=2)
当J=1或J=N+1时:其值为1
J!=1且J!=N+1时:其值为第N-1行的第J-1个值与第N-1行第J个值
之和
将这些特点提炼成数学公式可表示为:
1 x=1或x=N+1
c(x,y)=
c(x-1,y-1)+c(x-1,y) 其它

本程序应是根据以上递归的数学表达式编制的。
*程序说明与注释
#include<stdio.h>
int 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");
}
}

void 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;
}

xiaoliang_c 2009-02-24
  • 打赏
  • 举报
回复
这好象是C++的! 能讲解一下吗?
waizqfor 2009-02-24
  • 打赏
  • 举报
回复
给你一个 编程100例上的

#include<iostream.h>
void main()
{
double a[10][10];
int i;
int j;
for(i=0;i<10;i++)
for(j=0;j<10;j++)
a[i][j]=0;
for(i=0;i<10;i++)
{
a[i][0]=1;
a[i][i]=1;
}
for(i=0;i<10;i++)
{
for(j=0;j<i;j++)
{
a[i][j]=a[i-1][j-1]+a[i-1][j];
cout<<a[i][j]<<"\t";
}
cout<<endl;
}
}

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧