版权声明:本文为博主原创文章,欢迎指点!!! https://blog.csdn.net/allen807733144/article/details/84490988
写了前面两个发现可能很弱智,这些简单的算法还要写一大堆
所以简单的算法我们只贴代码,和简单的描述,不做详细说明
看上图就知道什么意思了。
#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 paint()
{
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");
}
}