給定兩個(gè)整數(shù)M,N,生成一個(gè)M*N的矩陣,矩陣中元素取值為A至Z的26個(gè)字母中的一個(gè),A在左上角,其余各數(shù)按順時(shí)針方向旋轉(zhuǎn)前進(jìn),依次遞增放置,當(dāng)超過26時(shí)又從A開始填充。例如,當(dāng)M=5,N=8時(shí),矩陣中的內(nèi)容如下:
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 LInput M為行數(shù),N為列數(shù),其中M,N都為大于0的整數(shù)。 Output 分行輸出相應(yīng)的結(jié)果 Sample Input
4 9Sample 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的紫書“蛇形填數(shù)”
注意格式,很容易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++)新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注