输入 5 7
输出
ABCDEFG
BABCDEF
CBABCDE
DCBABCD
EDCBABC
其中
1 <= n, m <= 26。
我自己的代码:
#include <stdio.h>
#include <iostream>
#include <cmath>
using namespace std;
char c[27]={' ','A','B','C','D','E','F','G','H','I','J','K','L',
'M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'
};
int main(){
int n,m;
cin>>n>>m;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
if(i-j>=0){
cout<<c[i-j+1];
}
else{
int t =fabs(i-j)+1;
cout<<c[t];
}
}
cout<<endl;
}
return 0;
}
其中在写if-else条件的时候有点粗心
后来看了一些别人的博客,发现如果直接用26的数组就很好了。
char c[26]={'A','B','C','D','E','F','G','H','I','J','K','L',
'M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'
};
输出也不需要+1
操作,for循环还可以更简洁[捂脸]
for(int i=0;i<=n;i++){
for(int j=0;j<=m;j++){
cout<<c[abs(i-j)];
}
cout<<endl;
}