• 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 }
  • 相关阅读:
    【字符编码】Java编码格式探秘
    【集合框架】JDK1.8源码分析之Collections && Arrays(十)
    【面试】shuffle函数的实现
    关于Jquery中ajax方法data参数用法的总结
    关于BootStrap下图标的显示问题
    dajngo权限管理
    Django下TemplateDoesNotExist 异常的解决方法:
    ubuntu安装有道
    python manage.py shell之后的一些错误:
    fat32转ntfs ,Win7系统提示对于目标文件系统文件过大解决教程
  • 原文地址:https://www.cnblogs.com/wxdjss/p/5707856.html
Copyright © 2020-2023  润新知