1. 程式人生 > >PAT乙級 跟奧巴馬一起程式設計

PAT乙級 跟奧巴馬一起程式設計

題目描述:
美國總統奧巴馬不僅呼籲所有人都學習程式設計,甚至以身作則編寫程式碼,成為美國曆史上首位編寫計算機程式碼的總統。2014 年底,為慶祝“電腦科學教育周”正式啟動,奧巴馬編寫了很簡單的計算機程式碼:在螢幕上畫一個正方形。現在你也跟他一起畫吧!
輸入格式:

輸入在一行中給出正方形邊長 N(3≤N≤20)和組成正方形邊的某種字元 C,間隔一個空格。
輸出格式:

輸出由給定字元 C 畫出的正方形。但是注意到行間距比列間距大,所以為了讓結果看上去更像正方形,我們輸出的行數實際上是列數的 50%(四捨五入取整)。
輸入樣例:

10 a

輸出樣例:

aaaaaaaaaa
a a
a a
a a
aaaaaaaaaa

作者: CHEN, Yue
單位: 浙江大學
時間限制: 400 ms
記憶體限制: 64 MB
程式碼長度限制: 16 KB

#include <iostream>
using namespace std;

int main()
{
	int n;
	char ch;
	cin>>n>>ch;
	int row1 = n/2 -1;
	int row2 = n/2 -2;
	int i,j;
	//奇數
	if(n%2)
	{ 
		 for(i=0;i<n;i++)
			cout<<ch;
		cout<<endl;
		for(i=0;i<row1;i++)
		{
			cout<<ch;
			for(j=0;j<n-2;j++)
				cout<<" ";
			cout<<ch<<endl;
		}
		for(i=0;i<n;i++)
			cout<<ch;
		cout<<endl;
	} 
	//偶數 
	if(!(n%2)) 
	{
		for(i=0;i<n;i++)
		cout<<ch;
	cout<<endl;
	for(i=0;i<row2;i++)
	{
		cout<<ch;
		for(j=0;j<n-2;j++)
			cout<<" ";
		cout<<ch<<endl;
	}
	
	for(i=0;i<n;i++)
		cout<<ch;
	cout<<endl;
	
	}
	getchar();

	return 0;	
} 

第一次看見這道題時,不知道為什麼非常頭疼,就沒有做;這次認真看了找到題,找了一下規律做了這道題。第一次提交時沒有區分n是奇數還是偶數的情況,直接按照偶數的情況做的,提交之後顯示部分正確,看到了 “我們輸出的行數實際上是列數的 50%(四捨五入取整)。”並用3,5,10,20試驗了一下,又完善了程式碼,答案正確了!撒花✿✿ヽ(°▽°)ノ✿。