zoukankan      html  css  js  c++  java
  • (南阳理工 题目33)蛇形填数

    蛇形填数

    时间限制:3000 ms  |  内存限制:65535 KB
    难度:3
     
    描述
    在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>
    #include<string.h>
    int main(){
    
        	int n ,val = 1;
        	scanf("%d",&n);
        	int k = n*n,i = 1,j = n;
        	int a[n+5][n+5];
        	memset(a,0,sizeof(a));
        	a[1][n] = 1;
    
        	while(val<k){
                while(i < n && !a[i+1][j])    a[++i][j] = ++val;
    
                while(j > 1 && !a[i][j-1])    a[i][--j] = ++val;
    
                while(i > 1 && !a[i-1][j])    a[--i][j] = ++val;
    
                while(j < n && !a[i][j+1])    a[i][++j]= ++val;
    
        	}
        	for(i = 1;i <= n;i++){
        		for(j = 1;j <= n;j++){
        			if(j == n)
        				printf("%d
    ",a[i][j]);
        			else
        				printf("%d ",a[i][j]);
        		}
    
        	}
    
        }
    

      

  • 相关阅读:
    面试题39:二叉树的深度、判断二叉树是不是平衡
    Bridge 桥接
    Adapter 适配器
    search_request.go
    scoring_criteria.go
    index_init_oprions.go
    index.go
    engine_init_options.go
    document_index_data.go
    util.go
  • 原文地址:https://www.cnblogs.com/cwenliu/p/5776823.html
Copyright © 2011-2022 走看看