杨辉三角一维数组编写。
我用二维数组编出来了,但是用一维数组没编出来,请教一下一维的怎么编?
程序代码:#include <stdio.h>
#include <math.h>
#define MAXN 110
int a[MAXN] = {0} ;
int main()
{
int i , j ;
int m = (int)sqrt(MAXN) ;
for( i = 1 ; i <= m ; ++i )
{
a[i * m] = 1 ;
printf("%d ", a[i * m] ) ;
for( j = 1 ; j < i ; ++j )
{
a[i * m + j] = a[( i - 1 ) * m + j - 1] + a[( i - 1 ) * m + j] ;
printf("%d ", a[i * m + j] ) ;
}
printf("\n") ;
}
return 0 ;
}
程序代码:#include <stdio.h>
#define N 12
long combi(int n, int r){
int i;
long p = 1;
for(i = 1; i <= r; i++)
p = p * (n-i+1) / i;
return p;
}
void main()
{
int n, r, t;
for(n = 0; n <= N; n++)
{
for(r = 0; r <= n; r++)
{
int i;/* 排版设定开始 */
if(r == 0)
{
for(i = 0; i <= (N-n); i++)
printf(" ");
}else
{
printf(" ");
} /* 排版设定结束 */
printf("%3d", combi(n, r));
}
printf("\n");
}
}