C算法编程题(二)正螺旋

前言

  上一篇《C算法编程题(一)扑克牌发牌

  写东西前总是喜欢吐槽一些东西,还是多啰嗦几句吧,早上看了一篇博文《谈谈外企涨工资那些事》,里面楼主讲到外企公司包含的五类人,其实不只是外企如此,私企和合资的都是如此,一些公司反正什么人都有,就怕你的上司是第一种,你的同事是第二种。这种搭配最讨人厌,反正技术和工作效率不怎么样,“做人”还蛮会做的。其实不管公司怎样,同事怎样,工作环境怎样。就像里面楼主说的,都要坚持自己选择的路,并坚持走下去。。。

  这几天都在博园逛一些技术大牛的博客,也买了本相关的数,在博园主要看些设计模式之类的,看了很是心血澎湃,真的希望自己有一天也可以写一些之类的文章。昨天下了一位园友写的一个权限管理系统,里面用到了mvc、ef、easyui和一些设计模式,自己接下来要好好研究下。其实一直有个想法是,希望可以把.net底层搞透,并整理一套属于自己的框架,慢慢优化下去,就像胡哥一样。完成这些,虽死无憾,哈哈哈。。。

  说的有点多了,会到正题,我一开始写这类算法编程题的时候,一是想可以帮到开始学习算法编程的同学们,二是锻炼自己的脑细胞,希望死的不要太多。还有就是写这些编程题和C++其实没什么关系,只是用简单的语法实现功能而已,重要的是逻辑思路,大家也可以看成是奥数题。

  网上看到一套趣味编程题,希望接下来可以一一和大家分享。

程序要求

  程序描述:

  从键盘输入一个整数(1~20)
    则以该数字为矩阵的大小,把1,2,3…n*n 的数字按照顺时针螺旋的形式填入其中。例如:
    输入数字2,则程序输出:
    1 2
    4 3
    输入数字3,则程序输出:
    1 2 3
    8 9 4
    7 6 5
    输入数字4, 则程序输出:
     1   2   3  4
    12  13  14  5
    11  16  15  6
    10   9   8  7

程序实现

  这个编程题大家可能都做过,算是比较经典的算法编程题了,当然也有很多的实现方法,这里我讲一种。

  我们先分析下,这个题目主要是输出数字螺旋,我们可以看成是四个方向:

  1,左-->右

  2,上-->下

  3,右-->左

  4,下-->上

  而且这四个方向的数字是依次递增的,那我们可以这样思考,整个输出是一个二维数组,行和列数是一样的,比如输入4,那1-12就是第一圈,12-16就是第二圈,每一圈又分四个方向。

  我们可以先这样定义:

     int num[][];
int i,j;
int rows,quan;

  num数组表示的是输出的数组,rows就是行列数,也就是我们输入的值,quan表示的是螺旋的圈数,i表示的是螺旋上的数字,j等下我们程序中讲,我们代码可以这样写:

     scanf("%d",&rows);
quan=;
for(i=;i<=rows*rows;quan++)
{
if(i==rows*rows)
num[(rows-)/][(rows-)/]=i++;
else
{
for(j=quan;j<rows--quan;j++)
num[quan][j]=i++;
for(j=quan;j<rows--quan;j++)
num[j][rows-quan-]=i++;
for(j=rows--quan;j>quan;j--)
num[rows-quan-][j]=i++;
for(j=rows--quan;j>quan;j--)
num[j][quan]=i++;
}
}

  最外层的for是循环圈数的意思,里面if是判断最后一圈是不是单独的数字,就像行数如果是3,那最后一圈就只要一个数字9,下面四个for就是代表的上面说的四个方向。大家看下代码就懂得,这里我就不多说了。

  大家可能有更好的实现方式,希望可以多多交流,

  完整程序代码:

 #include "stdio.h"
#include "string.h"
#include "stdlib.h" void main()
{
int num[][];
int i,j;
int rows,quan; scanf("%d",&rows);
quan=;
for(i=;i<=rows*rows;quan++)
{
if(i==rows*rows)
num[(rows-)/][(rows-)/]=i++;
else
{
for(j=quan;j<rows--quan;j++)
num[quan][j]=i++;
for(j=quan;j<rows--quan;j++)
num[j][rows-quan-]=i++;
for(j=rows--quan;j>quan;j--)
num[rows-quan-][j]=i++;
for(j=rows--quan;j>quan;j--)
num[j][quan]=i++;
}
} for(i=;i<rows;i++)
{
for(j=;j<rows;j++)
{
printf("%4d",num[i][j]);
}
printf("\n");
}
}

  运行结果:

aaarticlea/png;base64,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" alt="" />

上一篇:启动tomcat时,一直卡在Deploying web application directory这块的解决方案


下一篇:js Date对象