【说明】
设有3n+2个球互连,将自然数1~3n+2分别为这些球编号,使相连的两球编号之差的绝对值正好是数列1,2,…,3n+1中的各数,如下图所示:
![](https://img.ixiawen.com/uploadfile/2018/0625/20180625013412184.gif)
其中填自然数的思想如下;
(1)先自左向右,第1列中间1个填数,然后第2列上、下2个填数,每次2列;但若n为偶数,最后1次只排第1列中间一个数。
(2)自右向左,先右第1列中间填数;若n是奇数,再右第2列中间填数。然后依次右第1列上、下2个填数,再右第2列中间1个填数,直到左第2列为止。
【程序】
#include <stdio.h>
#define size 10
int a[3][size];
void main()
int i,k,m,n;
printf("imput the n:");
scanf("%d",&n);
k=1;
for(i=0; i<=n/2; i++)
a[1][2*i]=k; k++;
if((i==n/2)&& (1) ||(i<n/2))
a[0][2*i+1]=k;
k++;
(2)
k++;
if(n%2==1)
(3)
k++;
m=n;
else
(4)
for(i=0; i<n/2; i++)
a[1][m-2*i]=k; k++;
(5)
k++;
a[2][m-2*i-1]=k; k++;
a[1][1]=k;
printf("\n");
printf(" ");
for(i=1; i<=n; i++)
printf("%6d",a[0][i]);
printf("\n\n");
for(i=0; i<=n+1; i++)
printf("%6d",a[1][i]);
printf("\n\n");
printf(" ");
for(i=1; i<=n; i++)
printf("%6d",a[2][i]);
printf("\n");