zoukankan      html  css  js  c++  java
  • POJ 3752 字母旋转游戏

    问题描述:
    给定两个整数M,N,生成一个M*N的矩阵,矩阵中元素取值为A至Z的26个字母中的一个,A在左上角,其余各数按顺时针方向旋转前进,依次递增放置,当超过26时又从A开始填充。例如,当M=5,N=8时,矩阵中的内容如下:
    A B C D E F G H
    V W X Y Z A B I
    U J K L M N C J
    T I H G F E D K
    S R Q P O N M L
    输入:
    M为行数,N为列数,其中M,N都为大于0的整数
    输出:
    分行输出相应的结果
    样例输入:
    4  9
    样例输出:
    A B C D E F G H I
    V W X Y Z A B C J
    U J I H G F E D K
    T S R Q P O N M L
    参考代码:
     1 #include<iostream>
     2 #include<iomanip>
     3 using namespace std;
     4 
     5 void MATRIX(int** arr,int row,int col)//row为数组行,col为数组的列
     6 {
     7   int count=0;
     8   int x,y,min;
     9   (row>col)? min=col : min=row;
    10  if(arr==NULL||row<=0||col<=0) return;
    11  for(int round=0;round<min/2;++round)
    12   {
    13       x=round;
    14       for(y=round;y<col-round;y++)
    15       {arr[x][y]=count++;}
    16 
    17       y=col-round-1;
    18       for(x=round+1;x<row-round-1;x++)
    19       {arr[x][y]=count++;}
    20 
    21       x=row-round-1;
    22       for(y=col-round-1;y>=round;y--)
    23       {arr[x][y]=count++;}
    24 
    25       y=round;
    26       for(x=row-round-1-1;x>round;x--)
    27       {arr[x][y]=count++;}
    28   }
    29   if(row==col&&row%2==1){arr[row/2][col/2]=count;}
    30   if(min==row&&col!=row&&row%2==1)
    31     {
    32      for(y=min/2;y<col-min/2;y++)
    33      arr[min/2][y]=count++;
    34     }
    35    if(min==col&&col!=row&&col%2==1)
    36     {for(x=min/2;x<row-min/2;x++)
    37      arr[x][min/2]=count++;
    38     }
    39    for(x=0;x<row;x++)
    40      for(y=0;y<col;y++)
    41      { cout<<setw(3)<<char(arr[x][y]%26+'A');
    42          if(y==col-1)
    43          cout<<endl;
    44      }
    45 
    46 }
    47 
    48 void main()
    49 {
    50     int **arr;
    51     int col,row,i;
    52     cin>>row>>col;
    53     arr=new int*[row];//申请内存
    54     for(i=0;i!=row;++i)
    55     {arr[i]= new int[col];}
    56      MATRIX(arr,row,col);
    57      for(i=0;i!=row;++i)//释放内存
    58      {delete [] arr[i];}
    59      delete [] arr;
    60 }
  • 相关阅读:
    安装最新版本的zabbix
    原 linux添加虚拟ip(手动vip和keepalived方式)
    zzuli OJ 1129: 第几天
    WIN内核线程池函数
    Java中利用Math.random()产生服从泊松分布的随机数
    机房重构所遇问题&quot;未能载入文件或程序集“DAL”或它的某一个依赖项。系统找不到指定的文件&quot;的解决的方法集锦
    二路插入排序
    iOS开发之地图与定位
    2015-07-30Java 错题
    bootstrap, boosting, bagging
  • 原文地址:https://www.cnblogs.com/wxdjss/p/5707856.html
Copyright © 2011-2022 走看看