1. 程式人生 > 其它 >pat 乙級 1036 跟奧巴馬一起程式設計(C++)

pat 乙級 1036 跟奧巴馬一起程式設計(C++)

技術標籤:pat 乙級c++PATPAT乙級

題目

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

輸入格式:

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

輸出格式:

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

輸入樣例:

10 a

輸出樣例:

在這裡插入圖片描述

分析

  • 題目很簡單,就是找規律。注意一些細節就能AC
  • 第一行和最後一行輸出N個字元,其餘行有N-2個空格。
  • 行數是列數的50%,四捨五入。使用round函式,注意傳參要double型,同時要包含cmath標頭檔案。

AC程式碼

#include<iostream>
#include<cmath>
using namespace std;
int main()
{
	int i,j,N;
	char C;
	cin>>N>>C;
	int row=round((double)N/2);
	for(i=0; i<row; i++)
	{
		if(i==0||i==
row-1) //第一行和最後一行輸出N個字元 { for(j=0; j<N; j++) { cout<<C; } } else //其餘行的中間有N-2個空格 { cout<<C; for(j=0; j<N-2; j++) cout<<" "; cout<<C; } if(i!=row-1)//測試發現不加也可以,但為了更加嚴謹,還是加上 cout<<endl; } }

如果您有問題,或者有不同的解法,歡迎在評論區留言o

更多題解


pat 乙級(Basic Level) 題解彙總(持續更新)(C++)