题目
c语言代码
#include <stdio.h>
int n,a[1000][1000];
int b[1500];
int count=1,len=0,num=1;
void getnum() //先求出要放的数
{
int j=0,i;
for (i=1;i<=500;i++)
{
num=i;
if(num<=9) //一位数
{
b[j]=num%10+1;
j++;
}
else if(num>=10&&num<=99)//两位数
{
b[j]=num/10+1;
j++;
b[j]=num%10+1;
j++;
}
else { //三位数
b[j]=num/100+1;
j++;
b[j]=num%100/10+1;
j++;
b[j]=num%10+1;
j++;
}
}
return ;
}
int main()
{
scanf("%d",&n);
getnum();
int i,j,index=0;
len=2*n-1;
for(j=n-1,i=0;j>=0;j--,i++) //左
{
a[i][j]=b[index];
index++;
}
for(j=1,i--;j<len;j++)//下
{
a[i][j]=b[index];
index++;
}
j--;
for(i--,j--;i>=1;i--,j--)//右
{
a[i][j]=b[index];
index++;
}
for(int x=0;x<n;x++)
{
for(int y=0;y<n+x;y++)
if(a[x][y]==0)
printf(".");
else printf("%d",a[x][y]-1);
printf("\n");
}
return 0;
}