打印空心对称数字梯形 欢迎指导讨论

#include <stdio.h>
#include <math.h>
int main()
{
int m,n,i,j,k1,k2,k3;
scanf("%d %d",&n,&m);
for(i=1;i<=n;i++)
{
if(1==i)
{
for(j=1;j<=(3*n-1)/2;j++)
{
k1=m+j-1-(m+j-1)/10*10;
printf("%d",k1);
}
for(j=(3*n-1)/2+1;j<=3*n-2;j++)
{
if(n%2!=0)
{
k2=m+(3*n-1)/2-1-(m+(3*n-1)/2-1)/10*10-j+(3*n-1)/2;
if(k2<0) {
k3=abs(k2);
k3=k3/10+1;
k3=(k2+k3*10)%10;
printf("%d",k3);
}
else printf("%d",k2);
}
else
{
k2=m+(3*n-1)/2-1-(m+(3*n-1)/2-1)/10*10-j+(3*n-1)/2;
if(k2<0) {
k3=abs(k2);
k3=k3/10+1;
k3=(k2+k3*10+1)%10;
printf("%d",k3);
}
else printf("%d",(k2+1)%10);
}
}
printf("\n");
}
else if(n==i)
{
for(j=1;j<=n-1;j++) printf(" ");
for(j=1;j<=(n+1)/2;j++)
{
k1=m+n+j-2-(m+n+j-2)/10*10;printf("%d",k1);
}
for(j=(n+1)/2+1;j<=n;j++)
{
if(n%2!=0)
{
k2=m+n+(n+1)/2-2-(m+n+(n+1)/2-2)/10*10-j+(n+1)/2;
if(k2>=0) printf("%d",k2);
else {
k3=abs(k2);
k3=k3/10+1;
k3=(k2+k3*10)%10;
printf("%d",k3);
}
}
else
{
k2=m+n+(n+1)/2-2-(m+n+(n+1)/2-2)/10*10-j+(n+1)/2;
if(k2>=0) printf("%d",(k2+1)%10);
else {
k3=abs(k2);
k3=k3/10+1;
k3=(k2+k3*10+1)%10;
printf("%d",k3);
}
}
}
printf("\n");
}
else
{
for(j=1;j<=i-1;j++) printf(" ");
k1=m+i-1-(m+i-1)/10*10;
printf("%d",k1);
for(j=1;j<=3*n-2*i-2;j++) printf(" ");
printf("%d\n",k1);
}
}
return 0;
}

posted @ 2022-03-30 22:32  MRTREEee  阅读(115)  评论(0)    收藏  举报