C语言,杨辉三角公式

供稿:hz-xin.com     日期:2025-01-13
C语言,输出杨辉三角

修改:#include"stdio.h" void main(){int a[10][10],i,j;
for(i=0;i<=9;i++){
a[i][0]=1;//原代码此处需修改,第一位数为1
a[i][i]=1;}for(i=1;i=9;i++)
for(j=1;j<i;j++)//原代码此处需修改
a[i][j]=a[i-1][j-1]+a[i-1][j];
for(i=0;i<=9;i++){
for(j=0;j<=i;j++){printf("%5d",a[i][j]);}
printf("
");}return 0;}

扩展资料:
杨辉三角概述:
1.每个数等于它上方两数之和。
2.每行数字左右对称,由1开始逐渐变大。
3.第n行的数字有n+1项。
4.第n行数字和为2n。
5.第n行的m个数可表示为 C(n-1,m-1),即为从n-1个不同元素中取m-1个元素的组合数。
6.第n行的第m个数和第n-m+1个数相等 ,为组合数性质之一。
7.每个数字等于上一行的左右两个数字之和。可用此性质写出整个杨辉三角。即第n+1行的第i个数等于第n行的第i-1个数和第i个数之和,这也是组合数的性质之一。即 C(n+1,i)=C(n,i)+C(n,i-1)。
8.(a+b)n的展开式中的各项系数依次对应杨辉三角的第(n+1)行中的每一项。
9.将第2n+1行第1个数,跟第2n+2行第3个数、第2n+3行第5个数……连成一线,这些数的和是第4n+1个斐波那契数;将第2n行第2个数(n>1),跟第2n-1行第4个数、第2n-2行第6个数……这些数之和是第4n-2个斐波那契数。
10将各行数字相排列,可得11的n-1(n为行数)次方:1=11^0; 11=11^1; 121=11^2……当n>5时会不符合这一条性质,此时应把第n行的最右面的数字"1"放在个位,然后把左面的一个数字的个位对齐到十位。
以此类推,把空位用“0”补齐,然后把所有的数加起来,得到的数正好是11的n-1次方。以n=11为例,第十一行的数为:1,10,45,120,210,252,210,120,45,10,1,结果为 25937424601=1110。
参考资料:杨辉三角-百度百科

#include
void main()
{
void f(int n);
int n=0;
while(n16)
{
printf("请输入杨辉三角形的行数:");
scanf("%d",&n);
}
f(n);
}
void f(int n)
{
int i,j,a[17][17]={0};
for(i=0;i<n;i++)
a[i][0]=1;
for(i=1;i<n;i++)
for(j=1;j<=i;j++)
a[i][j]=a[i-1][j-1]+a[i-1][j];
for(i=0;i<n;i++)
{
for(j=0;j<=i;j++)
printf("%5d",a[i][j]);
printf("
");
}
}

方法1:

#include <stdio.h>
main()
{
int i,j,a[10][10]; /*10行10列的杨辉三角*/
for(i=0;i<10;i++) /*先赋值两边*/
{
a[i][0]=1;
a[i][i]=1;
}

for(i=2;i<10;i++) /* 计算中间的数值 */
for(j=1;j<i;j++)
a[i][j]=a[i-1][j-1]+a[i-1][j];

for(i=0;i<10;i++) /* 输出部分 */
{
for(j=0;j<i+1;j++)
printf("%d ",a[i][j]);
printf("\n");
}
}

方法2:
#include<stdio.h>
main()
{
long i,j,n,k;
printf("请输入要输出的杨辉三角的行数:");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
k=1;
for(j=1;j<=i;j++)
{
printf("%5ld",k);
k=k*(i-j)/j;
}
printf("\n");
}
}

挖掘杨辉三角的秘密
杨辉三角,又称贾宪三角、帕斯卡三角,是一种三角形数表,但是就在这外表、名字看上去普普通通的三角形数表中,却隐藏着无限的奥秘,当你知道了这些奥秘,再难的杨辉三角数学题也几乎能秒杀!
我们先来看看它的前几行吧:第零行是1,第一行是1、1,第二行是1、2、1,第三行是1、3、3 、1,第四行是1、4 、6 、4 、1,第五行是1、5、10 、10、5 、1;假如你把第零行看成1,把第一行看成11,把第二行看成121,把第三行看成1331,把第四行看成14641,把第五行看成15101051,也许你会感到即陌生又熟悉,那么事实证明你是对的——第一行是11的一次方,第二行是11的二次方,第三行是11的三次方,第四行是11的四次方,第五行是11的五次方,以此类推,第n行就是11的n次方,怎么样,很奇妙吧!
虽然杨辉三角有很多重要的性质,但是其中三个我们一定要记住:一是每个数等于它上面两个数之和(空白处为零),二是每行数字左右对称,三是每行两边的数字都是1;其它的那些性质也很有意思,比如说第n行有n+1个数字,第n行的数字和是2的n次方……
在杨辉三角里藏着好多好多我们的数列朋友。你可以先把杨辉三角按照左对齐的方式整整齐齐地写出来,然后从左上方向右下方切下,分成一层一层的,第一层是1,第二层是1,第三层是1、1,第四层是1、2,第五层是1、3、1;再看看它们的数字和,写出来是1、1、2、3、5、8、13……不就是我们熟悉的兔子数列吗!
杨辉三角的奥秘有很多,只要你仔细地去找,就一定能找到!

C语言,杨辉三角公式
int i,j,a[10][10]; \/*10行10列的杨辉三角*\/ for(i=0;i<10;i++) \/*先赋值两边*\/ { a[i][0]=1;a[i][i]=1;} for(i=2;i<10;i++) \/* 计算中间的数值 *\/ for(j=1;j<i;j++)a[i][j]=a[i-1][j-1]+a[i-1][j];for(i=0;i<10;i++) \/*...

用简单的c语言表示杨辉三角?
对于一个具有 n 层的杨辉三角,这种方法的时间复杂度为 O(2^n)。另一种方法是利用阶乘来表示二项式系数。阶乘表示公式为 C(n, k) = n! \/ (k! * (n-k)!) 。但这种方法的时间复杂度为 O(n),且存在阶乘溢出的风险。为缓解这个问题,可以将分子分母中的部分阶乘进行消去,公式变为 C(n,...

详解C语言用数组表示杨辉三角...
while(n<1 || n>16){ printf("请输入杨辉三角形的行数:");scanf("%d",&n);} for(i=1;i<=n;i++)for(j=1;j<=i;j++)a[i][j]=a[i-1][j-1]+a[i-1][j]; \/*每个数是上面两数之和*\/ for(i=1;i<=n;i++) \/*输出杨辉三角*\/ { for(j=1;j<=i;j++) pr...

怎样用c语言来编写杨辉三角形的递归程序?
int j){ \/*定义组合数*\/ float k; k=J(j)\/(J(i)*J(j-i)); return(k);}void main(){ int i=0,j,k,n; \/*打印杨辉三角*\/ while(i<=0||i>16){ printf("请输入要打印的行数:");

C语言,输出杨辉三角
for(i=0;i<=9;i++){ a[i][0]=1;\/\/原代码此处需修改,第一位数为1 a[i][i]=1;}for(i=1;i=9;i++)for(j=1;j<i;j++)\/\/原代码此处需修改 a[i][j]=a[i-1][j-1]+a[i-1][j];for(i=0;i<=9;i++){ for(j=0;j<=i;j++){printf("%5d\\t",a[i][j])...

c语言问题,求杨辉三角
如果`i`和`j`都不为0且不相等,说明我们当前处在一个非边缘的数字上,此时`a[i][j]`应等于上一行左边的数字`a[i-1][j-1]`加上上一行中间的数字`a[i-1][j]`。这是根据杨辉三角性质得到的。如果`i`或`j`为0,表示当前处于边缘位置。当`i`为0时,意味着处于第一行,所有元素默认为...

C语言趣味程序问题 输出杨辉三角
在C语言中,输出杨辉三角是一个常见的问题,杨辉三角是由二项式系数组成的三角形数组,每一行的数字都是前一行数字的组合数。首先,定义一个函数c(x,y),用于计算二项式系数。这个函数的逻辑是,如果y等于1或者y等于x减1,返回1;否则,返回前一行的组合数c(x-1,y-1)加上前一行的组合数c(x-1,...

c语言程序杨辉三角
void main(){ int a[10] = { 1 };for (int i = 0; i < 10; i++) \/\/用循环打印第一行 { if (a[i] == 0){ printf("%4c",' ');} else printf("%4d", a[i]);} \/\/先输出第一行之后再进行循环 for (int j = 2; j <= 10; j++){ printf("\\n"); \/\/...

C语言 求杨辉三角前10行 a[10][10]={1} 是什么意思
杨辉三角用二维数组写出来的 这是标准输出的情况,而将其余的都输出就是:int i,j,a[10][10]={1}; 表示的是将二维数组中的第一个元素自己给值为:1 数组中 a[10]={x,x,x,x,x,x,,,}; 数组={}花括号括起来的都是数组中的元素,依次向后。二维数组中 a[10][10]={{xx},{xx}...

用c语言编写程序 输出杨辉三角
n=10;printf(" 1");printf("\\n");a[1]=a[2]=1;printf("%3d%3d\\n",a[1],a[2]);for(i=3;i<=n;i++){ a[1]=a[i]=1;for(j=i-1;j>1;j--)a[j]=a[j]+a[j-1];for(j=1;j<=i;j++)printf("%3d",a[j]);printf("\\n");} return 0;} 应用 与杨辉三...