基礎練習 字母圖形
時間限制:1.0s 記憶體限制:256.0MB
問題描述
利用字母可以組成一些美麗的圖形,下面給出了一個例子:
ABCDEFG
BABCDEF
CBABCDE
DCBABCD
EDCBABC
這是一個5行7列的圖形,請找出這個圖形的規律,并輸出一個n行m列的圖形。
輸入格式
輸入一行,包含兩個整數n和m,分别表示你要輸出的圖形的行數的列數。
輸出格式
輸出n行,每個m個字元,為你的圖形。
樣例輸入
5 7
樣例輸出
ABCDEFG
BABCDEF
CBABCDE
DCBABCD
EDCBABC
資料規模與約定
1 <= n, m <= 26。
分析:有些和我一樣的新人看到這種題,第一時間想到的是用*列印各種圖案的方法。
每一行分成兩個部分,一個是A前面的部分為倒叙,一個是A後面的部分為正序。
但如果仔細觀察,利用資料結構中圖所學知識,可以看出圖中字母明顯的規律。
那就是每一位都是 ∣ i − j ∣ + ′ A ′ {\mid{i-j}\mid+\ 'A'} ∣i−j∣+ ′A′
根據這個公式我們可以寫出以下代碼,比上一種方法更優。
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
int n, m, i, j;
cin >> n >> m;
for(i = 0; i < n; i++)
{
for(j = 0; j < m; j++)
{
cout << char(abs(i-j)+'A');
}
cout << endl;
}
return 0;
}