这个是我写的,很烂...发出来大家帮咱改改,谢谢大家了
程序代码:
#include<stdio.h>
int main()
{
int a[19][37],l,r,n;
scanf("%d",&n);
if((n+1)%2==0||n==1)
{
for(l=0;l<n;l++)
{
for(r=0;r<n-l-1;r++)
{
a[l][r]=32;
}
for(;r<n+l;r++)
{
if((r==n-l-1)||(r==n+l-1)) a[l][r]=1; // n-l-1+2*l+1
else
{
if(l%2==0&&l!=0)
{
if((r+1)%2==0) a[l][r]=32;
else a[l][r]=a[l-1][r-1]+a[l-1][r+1];
}
if((l+1)%2==0&&l!=0)
{
if(r%2==0) a[l][r]=32;
else a[l][r]=a[l-1][r-1]+a[l-1][r+1];
}
}
}
}
}
if(n%2==0)
{ for(l=0;l<n;l++)
{
for(r=0;r<n-l-1;r++)
{
a[l][r]=32;
}
for(;r<n+l;r++)
{
if((r==n-l-1)||(r==n+l-1)) a[l][r]=1; // n-l-1+2*l+1
else
{
if(l%2==0&&l!=0)
{
if(r%2==0) a[l][r]=32;
else a[l][r]=a[l-1][r-1]+a[l-1][r+1];
}
if((l+1)%2==0&&l!=0)
{
if((r+1)%2==0) a[l][r]=32;
else a[l][r]=a[l-1][r-1]+a[l-1][r+1];
}
}
}
}
}
for(l=0;l<n;l++)
{
for(r=0;r<=n+l-1;r++)
{
if(a[l][r]==32) printf("%c",a[l][r]);
if(a[l][r]!=32) printf("%d",a[l][r]);
}
printf("\n");
}
return 0;
}