打印如下图形,每个字符为3个宽度,右对齐:
1
1
============
4
1 2 3 4
12 5
11 6
10 9 8 7
==================
10
1 2 3 4 5 6 7 8 9 10
36 11
35 12
34 13
33 14
32 15
31 16
30 17
29 18
1
1
============
4
1 2 3 4
12 5
11 6
10 9 8 7
==================
10
1 2 3 4 5 6 7 8 9 10
36 11
35 12
34 13
33 14
32 15
31 16
30 17
29 18
28 27 26 25 24 23 22 21 20 19
#include <iostream>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <algorithm>
#include <math.h>
using namespace std;
int a[105];
int b[105];
int main()
{
int n;
while(scanf("%d",&n),n)
{
if(n==1)
{
printf("%3d\n",1);
continue;
}
for(int i=1; i<=4*(n-1)+1; i++)
b[i] = i;
int j=1;
for(j=1; j<=n; j++)
printf("%3d",b[j]);
printf("\n");
for(int k=1; k<=n-2; k++)
{
printf("%3d",b[4*(n-1)-k+1]);
for(int i=0; i<n-2; i++)
printf(" ");
printf("%3d\n",b[j+k-1]);
}
for(int i=4*(n-1)-(n-2); i>=j+n-2; i--)
printf("%3d",b[i]);
printf("\n");
}
return 0;
}