首页 > 学院 > 开发设计 > 正文

POJ 3752 字母旋转游戏

2019-11-06 06:21:38
字体:
来源:转载
供稿:网友

给定两个整数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

Input M为行数,N为列数,其中M,N都为大于0的整数。 Output 分行输出相应的结果 Sample Input

4 9

Sample Output

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

做之前可以参照一下lnj的紫书“蛇形填数”

注意格式,很容易PE。

#include<iostream>#include<cstdio>#include<cstring>using namespace std;int s[1005][1005];int main(){ int n,m; cin>>n>>m; int k=0,j=0,i=1; memset(s,0,sizeof(s)); while(k<n*m) { while(j<m&&!s[i][j+1]) s[i][++j]=++k; while(i<n&&!s[i+1][j]) s[++i][j]=++k; while(j>1&&!s[i][j-1]) s[i][--j]=++k; while(i>1&&!s[i-1][j]) s[--i][j]=++k; } for(int i=1;i<=n;i++) { for(int j=1;j<=m;j++) PRintf(" %c",(s[i][j]-1)%26+'A'); //注意格式 printf("/n"); } return 0;}
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表