[算法]蛇形数组算法

简介: // //  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");

   }

}

结果:


相关文章
|
5月前
【题型总结】动态规划之按照某种形式分割数组以获得最值
【题型总结】动态规划之按照某种形式分割数组以获得最值
71 0
|
算法 安全 C++
[算法] 字符串 | 字符串哈希理论基础
[算法] 字符串 | 字符串哈希理论基础
|
5月前
|
算法 测试技术 C++
【动态规划】【数学】【C++算法】805 数组的均值分割
【动态规划】【数学】【C++算法】805 数组的均值分割
排列组合算法
排列组合算法
每日一题,数组字符串的匹配问题
每日一题,数组字符串的匹配问题
|
安全 算法 索引
对字符串进行分割并且补位的算法解析
重点掌握StringBuilder和StringBuffer和String的区别
对字符串进行分割并且补位的算法解析
【基础算法】浅浅刷个小题 # 找不同 # 字符串中的单词数 # 重新排列字符串 #
【基础算法】浅浅刷个小题 # 找不同 # 字符串中的单词数 # 重新排列字符串 #
|
机器学习/深度学习
【数论】计算s里有几个n,去除s里的n
【数论】计算s里有几个n,去除s里的n
82 0
|
机器学习/深度学习 算法 测试技术
686. 重复叠加字符串匹配 :「卡常」&「上下界性质」&「KMP」&「字符串哈希」
686. 重复叠加字符串匹配 :「卡常」&「上下界性质」&「KMP」&「字符串哈希」
|
机器学习/深度学习 JavaScript
472. 连接词 : 序列 DP(字符串哈希优化)应用题
472. 连接词 : 序列 DP(字符串哈希优化)应用题
下一篇
无影云桌面