题目33:蛇形填数

来源:互联网 发布:英语会被取代知乎 编辑:程序博客网 时间:2024/06/01 09:35

题目链接:

http://acm.nyist.net/JudgeOnline/problem.php?pid=33

描述

在n*n方陈里填入1,2,…,n*n,要求填成蛇形。例如n=4时方陈为:
10 11 12 1
9 16 13 2
8 15 14 3
7 6 5 4

输入

直接输入方陈的维数,即n的值。(n<=100)

输出

输出结果是蛇形方陈。

样例输入

3

样例输出

7 8 1
6 9 2
5 4 3

算法思想:

这个直接模拟数的规律直接输出就可以。

源代码

#include<stdio.h>int main(){    int a,b,c,d,n,sum=1;    int yi[101][101];    scanf("%d",&n);    for(a=0;a<=(n-1)/2;a++)    {        for(b=a;b<=n-a-1;b++)            yi[b][n-a-1]=sum++;        for(b=n-2-a;b>=a;b--)            yi[n-a-1][b]=sum++;        for(b=n-a-2;b>=a;b--)            yi[b][a]=sum++;        for(b=a+1;b<n-a-1;b++)            yi[a][b]=sum++;    }    for(c=0;c<n;c++)    {        for(d=0;d<n;d++)            printf("%d ",yi[c][d]);        printf("\n");    }}        
原创粉丝点击