天天看點

藍橋杯 基礎練習 BASIC-3 字母圖形 循環 字元串

基礎練習 字母圖形

時間限制: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+\ &#x27;A&#x27;} ∣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;
}
           

繼續閱讀