天天看點

藍橋杯-基礎練習之字母圖形——BASIC-3

  基礎練習 字母圖形 

問題描述

利用字母可以組成一些美麗的圖形,下面給出了一個例子:

ABCDEFG

BABCDEF

CBABCDE

DCBABCD

EDCBABC

這是一個5行7列的圖形,請找出這個圖形的規律,并輸出一個n行m列的圖形。

輸入格式 輸入一行,包含兩個整數n和m,分别表示你要輸出的圖形的行數的列數。 輸出格式 輸出n行,每個m個字元,為你的圖形。 樣例輸入 5 7 樣例輸出 ABCDEFG

BABCDEF

CBABCDE

DCBABCD

EDCBABC 資料規模與約定 1 <= n, m <= 26。

// 字母圖形 

// 先輸出逆序再輸出正序
#include <iostream>
using namespace std;
int main()
{
	int n,m;
	int i,j,k;

	while(cin>>n>>m)
	{
		for(i=0;i<n;++i)
		{
			// abs(j-i)<m 就是要確定當行數大于列數的時候輸出個數
			for(j=i;j>0 && i-j<m;--j)
				cout<<char('A'+j);
			
			for(k=0;k+i<m;++k)
				cout<<char('A'+k);
			cout<<endl;
		}
	}

	return 0;
}


// 每個字母出現的時候是'A'+abs(行數-列數), 耗時更短
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
	int n,m,i,j;
	char a='A';
	while(cin>>n>>m)
	{
		for(i=1;i<=n;++i)
		{
			for(j=1;j<=m;++j)
				cout<<char(a+abs(i-j));
			cout<<endl;
		}
	}
	return 0;
}
           

繼續閱讀