PAT乙級 跟奧巴馬一起程式設計
阿新 • • 發佈:2018-11-25
題目描述:
美國總統奧巴馬不僅呼籲所有人都學習程式設計,甚至以身作則編寫程式碼,成為美國曆史上首位編寫計算機程式碼的總統。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試驗了一下,又完善了程式碼,答案正確了!撒花✿✿ヽ(°▽°)ノ✿。