[算法]蛇形数组算法

简介: // //  main.c //  test2 // //  Created by 丁小未 on 13-7-14. //  Copyright (c) 2013年 dingxiaowei.

//

//  main.c

//  test2

//

//  Created by 丁小未 on 13-7-14.

//  Copyright (c) 2013 dingxiaowei. All rights reserved.

//

//蛇形函数问题

#include<stdio.h>

#include<string.h>

void main()

{

   int i = 0,n,k = 1;

   printf("请输入N:");

   scanf("%d",&n);  //

   int j = n-1,s[100][100];

   memset(s,0,sizeof(s));  //内存初始化

   

   while(k<=n*n)

   {

       while(i<=n-1&&s[i][j]==0&&k<=n*n) {s[i++][j] = k++;}

       i--;//不然的话上面一行i++之后越过边界了

       j--;//不然会覆盖边角的那个数

       while(j>=0&&s[i][j]==0&&k<=n*n)  {s[i][j--] = k++;}

       j++;

       i--;

       while(i>=0&&s[i][j]==0&&k<=n*n)  {s[i--][j] = k++;}

       i++;

       j++;

       while(j<=n-1&&s[i][j]==0&&k<=n*n)  {s[i][j++] = k++;}

       i++;

       j--;

   }

   

   //打印输出

   for(int x = 0;x<n;x++)

   {

       for(int y = 0;y<n;y++)

       {

           if(s[x][y]<10)

               printf("%d  ",s[x][y]);

           else

               printf("%d ",s[x][y]);

       }

       printf("\n");

   }

}

结果:


相关文章
|
6月前
【题型总结】动态规划之按照某种形式分割数组以获得最值
【题型总结】动态规划之按照某种形式分割数组以获得最值
75 0
|
4月前
|
算法
后缀数组算法介绍
后缀数组学习
38 2
|
5月前
|
算法
数据结构和算法——散列函数的构造方法(直接定址法、除留余数法、数字分析法、折叠法、平方取中法、ASCII码加和法、前三字符移位法)
数据结构和算法——散列函数的构造方法(直接定址法、除留余数法、数字分析法、折叠法、平方取中法、ASCII码加和法、前三字符移位法)
55 0
|
算法 安全 C++
[算法] 字符串 | 字符串哈希理论基础
[算法] 字符串 | 字符串哈希理论基础
|
6月前
|
算法 vr&ar 图形学
☆打卡算法☆LeetCode 187. 重复的DNA序列 算法解析
☆打卡算法☆LeetCode 187. 重复的DNA序列 算法解析
|
6月前
|
C语言
c语言编程练习题:7-56 求给定精度的简单交错序列部分和
c语言编程练习题:7-56 求给定精度的简单交错序列部分和
82 0
|
6月前
|
算法
【算法总结】字符串哈希
【算法总结】字符串哈希
98 0
|
6月前
|
存储 算法 Java
【算法训练-数组 二】【元素组合】两数之和、三数之和
【算法训练-数组 二】【元素组合】两数之和、三数之和
52 0
【基础算法】浅浅刷个小题 # 找不同 # 字符串中的单词数 # 重新排列字符串 #
【基础算法】浅浅刷个小题 # 找不同 # 字符串中的单词数 # 重新排列字符串 #
|
机器学习/深度学习 算法 测试技术
686. 重复叠加字符串匹配 :「卡常」&「上下界性质」&「KMP」&「字符串哈希」
686. 重复叠加字符串匹配 :「卡常」&「上下界性质」&「KMP」&「字符串哈希」