08-17 算法题

来源:互联网 发布:php中正则表达式 编辑:程序博客网 时间:2024/05/22 13:45

1. 求100!的末尾有多少个0     关键求1-100 数中 因子5的个数

 

2. 蛇形矩阵 , 每一个斜着的 一行 行号+列号是相等的  并且分奇偶;

代码如下: 思想 每过一次斜行  起始行号会变(0,或者 sum)  行号+列号 不变

 

3. 魔方阵(横着 竖着 斜着 相加都一样)  越界用取余计算  || (row-1+size )%size  行 ||列 (col+1)%size 

    这里因为行号要减少所以要加 size  避免 行号出现负数的情况,    ||  n%size 判断另外条件08-17 <wbr>算法题

 

下面为蛇形矩阵代码

#include
    #include
    #define size atoi(argv[1])
    #define in_arr(x,y)(x)>=0&&(x)=0&&(y)
    
    int main(int argc,char *argv[])
    {
     int row,col;
     int arr[size][size];
   10  int sum=0;
   11  int num=0;
   12  while(sum<=size*2-1)
   13  {
   14   if(sum%2==0)
   15   {
   16    for(row=0;row<=sum;row++)
   17    {
   18     if(in_arr(row,sum-row))
   19      arr[row][sum-row]=++num;
   20    }
   21 
   22 
   23   }else
   24   {
   25    for(row=sum;row>=0;row--)
   26    {
   27     if(in_arr(row,sum-row))
   28      arr[row][sum-row]=++num;
   29    }
   30   }
   31   sum++;
   32  }
   33  /////
   34  for(row=0;row
   35  {
   36   for(col=0;col
   37    printf("=",arr[row][col]);
   38   printf("\n");
   39  }
   40 }

0 0