打印图示巴斯卡三角三角:
代码①:
int main()
{
int i, j, k; //i控制行数,j控制列数,k控制空格数
int n;
int **a;//动态申请分配内存
scanf("%d", &n);
a = (int**)malloc(sizeof(int*)*n);
for(i=0; i<n; i++)
{
a[i] = (int*)malloc(sizeof(int)*n);
}
for(i=0 ;i<n; i++)//对第一列和对角线赋值为1
{
a[i][0] = 1;
a[i][i] = 1;
}
for(i=2; i<n; i++)//计算其他数
{
for(j=1; j<n-1; j++)
{
a[i][j] = a[i-1][j-1] + a[i-1][j];//巴斯卡三角关系式
}
}
for(i=0; i<n; i++)//打印巴斯卡三角
{
for(k=0; k<n-i; k++)
{
printf(" ");
}
for(j=0; j<i+1; j++)
{
printf("%4d", a[i][j]);
}
printf("\n");
}
free(a);
return 0;
}
代码②:
#include<stdio.h>
int Cre(int n, int m)
{
int p;
int i;
p = 1;
for (i=0; i<m; i++)
{
p = p * (n - i) / (i+1);
}
return p;
}
int main()
{
int i, j, k;
int n;
scanf("%d", &n);
for (i=0; i<=n; i++)
{
for (j=0; j<=i; j++)
{
if(j == 0)
{
for (k=1; k<=n-i; k++)
{
printf(" ");
}
}
else
{
printf(" ");
}
printf("%3d", Cre(i, j));
}
printf("\n");
}
return 0;
}
示例1:
示例2: