pat 乙級 1036 跟奧巴馬一起程式設計(C++)
阿新 • • 發佈:2021-02-18
題目
美國總統奧巴馬不僅呼籲所有人都學習程式設計,甚至以身作則編寫程式碼,成為美國曆史上首位編寫計算機程式碼的總統。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++)