zoukankan      html  css  js  c++  java
  • 蛇形填数

    
    蛇形填数:

    描写叙述
    在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 N[100][100];//定义全局二维数组,存储数据
    int count = 1;//count 记录每次填进数组的数字
    //填数函数,參数分别为:数组的行号,列号,開始填入的数字(从1開始),数组的大小
    void sxts(int k,int h,int count,int size)
    {
    	if(size == 0)//数组大小为 0 * 0 ,即没有要填的,直接返回
    		return ;
    	if(size == 1)//数组为数组大小为1 * 1,仅仅需填入一个数
    	{
    		N[h][k] = count;
    		return ;
    	}
    	int i  = 0; 
    	N[h][k] = count;//填右上角的位置 1;
    	count ++;//数字加1为下一次填数准备
    	//填最外层的右边一竖列(相当于size = 3 时 的 2 3)
    	//此列规律为:列号不变,行号依次添加
    	for(i = 0; i < size - 1; i ++)
    	{
    		h ++;//行号添加
    		N[h][k] = count;//填入数字
    		count ++;//为下一次填数准备
    	}
    	//填最外一层的下边(相当于size = 3 时 的 4 5)
    	//此行的规律为:行号不变,列号依次递减
    	for(i = 0; i < size -1; i ++)
    	{
    		k --;
    		N[h][k] = count;
    		count ++;
    	}
    	//填最外一层的左边一竖列(相当于size = 3 时 的 6 7)
    	//此行的规律为:列号不变。行号号依次递减
    	for(i = 0; i < size - 1; i ++)
    	{
    		h --;
    		N[h][k] = count;
    		count ++;
    	}
    	//填最外一层的上边一行(相当于size = 3 时 的 8)
    	//此行的规律为:列号不变,行号号依次递减,可是注意在填这一行时循环应该为size - 2次,由于此行的最左边和最右边的均被填过
    	for(i = 0; i < size - 2; i ++)
    	{
    		k ++;
    		N[h][k] = count;
    		count ++;
    	}
    	//递归调用,填下一层
    	sxts(k,h + 1,count,size - 2);
    }
    int main()
    {
    	int h,k,n,i,j;
    	scanf("%d",&n);
    	k = n - 1; h = 0;
    	sxts(k,h,count,n);
    	//打印出数组
    	for(i = 0; i < n; i ++)
    	{
    		for(j = 0; j < n; j ++)
    			printf("%d ",N[i][j]);
    		printf("
    ");
    	}
    	return 0;
    }

  • 相关阅读:
    四种读写方案IO流 (JAVA)
    如何保证ArrayList线程安全
    异常总结 (经典)
    JAVA反射机制
    移位运算符(JAVA)
    return和finally的执行顺序
    适配器模式(接口)
    2020年大厂Java面试题集锦,干货集锦,快来集合了!
    资深架构师解析springcloud分布式微服务的实现
    HTTP最全最新资料大全
  • 原文地址:https://www.cnblogs.com/zsychanpin/p/6795105.html
Copyright © 2011-2022 走看看