杨辉三角一维数组编写。
我用二维数组编出来了,但是用一维数组没编出来,请教一下一维的怎么编?
#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"); } }