成都网站建设设计

将想法与焦点和您一起共享

c语言帕斯卡三角形函数,帕斯卡三角形算法

求一个C语言程序,输出杨辉三角,又名帕斯卡三角。(如图) 要求:用户输入有多少行,即可输出相应的杨

long factorial(int);

成都创新互联于2013年成立,先为荣县等服务建站,荣县等地企业,进行企业商务咨询服务。为荣县企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。

int main()

{

int i, n, c;

printf("Enter the number of rows you wish to see in pascal triangle\n");

scanf("%d",n);

for ( i = 0 ; i n ; i++ )

{

for ( c = 0 ; c = ( n - i - 2 ) ; c++ )

printf(" ");

for( c = 0 ; c = i ; c++ )

printf("%ld ",factorial(i)/(factorial(c)*factorial(i-c)));

printf("\n");

}

return 0;

}

long factorial(int n)

{

int c;

long result = 1;

for( c = 1 ; c = n ; c++ )

result = result*c;

return ( result );

}

Should be working~

帕斯卡三角形的计算方法

每行由左而右各数,分别命名为第0元素,第1元素,....,如此第n行第r元素是 nCr.每列由左而右各数,分别命名为第0元素,第1元素,....,如此第n列第n元素是 nCr.

nCr =nCr=

n!n!

--------

r!(n-r)!r!(n-r)!

例如:第4列第1元素(n=4,r=1)是

4!

--------

1!(4-1)!

= 1*3*2*1=6

5!=5×4×3×2×1=120. 8!=8×7×6×5×4×3×2×1=40320

第n 列元素合是2n.

20= 120=1

21= 1+1 = 221=1+1=2

22= 1+2+1 = 422=1+2+1=4

23= 1+3+3+1 = 823=1+3+3+1=8

24= 1+4+6+4+1 = 1624=1+4+6+4+1=16

如果有一列的第一元素是质数,除了前后元素之外,多可以被此质数除尽。 例如, 第7列row7(1 7 21 35 35 21 7 1) 7, 21, and 35 多可被 7整除.例如, 第7列row7(1 7 21 35 35 21 7 1)7,21,and35多可被7整除. 从某列的前(后)元素(1)开始向下朝帕斯卡三角形内,任划一对角线(长度自订),则对角线所经过各数相加之和恰等于对角线最后一个数下方的数(位于下一列,但不在对角线上)。

如:

1+6+21+56 = 841+6+21+56=84

1+7+28+84+210+462+924 = 17161+7+28+84+210+462+924=1716

1+12 = 131+12=13

如果将每列的元素,由左而右,当作一个多位数整数,此数恰等于11的n次方(n是列数),如下表:

列数 指数式 = 计算值 列展开式

第0列 11^0 = 1 1

第1列 11^1 = 11 1 1

第2列 11^2 = 121 1 2 1

第3列 11^3 = 1331 1 3 3 1

第4列 11^4 = 14641 1 4 6 4 1

第5列 11^5 = 161051 1 5 10 10 5 1

第6列 11^6 = 1771561 1 6 15 20 15 6 1

第7列 11^7 = 19487171 1 7 21 35 35 21 7 1

第8列 11^8 = 214358881 1 8 28 56 70 56 28 8 1

其英文解释为:Pascal's triangle

这里还要介绍一下,帕斯卡三角形也叫贾宪三角形。

c语言的杨辉三角程序

c语言的杨辉三角程序如下:

#include stdio.h

#include stdlib.h

int main()

{

int s = 1, h;                    // 数值和高度

int i, j;                        // 循环计数

scanf("%d", h);                 // 输入层数

printf("1\n");                   // 输出第一个 1

for (i = 2; i = h; s = 1, i++)         // 行数 i 从 2 到层高

{

printf("1 ");                // 第一个 1

for (j = 1; j = i - 2; j++) // 列位置 j 绕过第一个直接开始循环

//printf("%d ", (s = (i - j) / j * s));

printf("%d ", (s = (i - j) * s / j));

printf("1\n");               // 最后一个 1,换行    }

getchar();                       // 暂停等待

return 0;

}

扩展资料:

杨辉三角概述

前提:每行端点与结尾的数为1.

每个数等于它上方两数之和。

每行数字左右对称,由1开始逐渐变大。

第n行的数字有n项。

第n行数字和为2n。

第n行的m个数可表示为 C(n-1,m-1),即为从n-1个不同元素中取m-1个元素的组合数。

第n行的第m个数和第n-m+1个数相等 ,为组合数性质之一。

每个数字等于上一行的左右两个数字之和。可用此性质写出整个杨辉三角。即第n+1行的第i个数等于第n行的第i-1个数和第i个数之和,这也是组合数的性质之一。即 C(n+1,i)=C(n,i)+C(n,i-1)。

(a+b)n的展开式中的各项系数依次对应杨辉三角的第(n+1)行中的每一项。

将第2n+1行第1个数,跟第2n+2行第3个数、第2n+3行第5个数……连成一线,这些数的和是第4n+1个斐波那契数;将第2n行第2个数(n1),跟第2n-1行第4个数、第2n-2行第6个数……这些数之和是第4n-2个斐波那契数。

参考资料:

百度百科-杨辉三角

C语言中怎么写杨辉三角啊?

杨辉三角,又称贾宪三角形,帕斯卡三角形,是二项式系数在三角形中的一种几何排列。在欧洲,这个表叫做帕斯卡三角形。

这是杨辉三角:

代码如下:

#include stdio.h

#include stdlib.h

const int length = 10;  // 定义杨辉三角的大小

int main(void)

{  

int nums[length][length];

int i, j;

/*计算杨辉三角*/

for(i=0; ilength; i++)

nums[i][0] = 1; 

nums[i][i] = 1;

for(j=1; ji; j++)

nums[i][j] = nums[i-1][j-1] + nums[i-1][j];

}

/*打印输出*/

for(i=0; ilength; i++)

{

for(j=0; jlength-i-1; j++)  

printf("   ");  

for(j=0; j=i; j++)  

printf("%-5d ", nums[i][j]);

putchar('\n');

}

getchar();// 暂停

return EXIT_SUCCESS;

}

C语言,杨辉三角公式

方法1:

#include stdio.h

main()

{

int i,j,a[10][10]; /*10行10列的杨辉三角*/

for(i=0;i10;i++) /*先赋值两边*/

{

a[i][0]=1;

a[i][i]=1;

}

for(i=2;i10;i++) /* 计算中间的数值 */

for(j=1;ji;j++)

a[i][j]=a[i-1][j-1]+a[i-1][j];

for(i=0;i10;i++) /* 输出部分 */

{

for(j=0;ji+1;j++)

printf("%d ",a[i][j]);

printf("\n");

}

}

方法2:

#includestdio.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");

}

}


分享文章:c语言帕斯卡三角形函数,帕斯卡三角形算法
转载源于:http://chengdu.cdxwcx.cn/article/hccgpg.html