1036 跟奥巴马一起编程 (15分)——16行代码AC
生活随笔
收集整理的這篇文章主要介紹了
1036 跟奥巴马一起编程 (15分)——16行代码AC
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
立志用更少的代碼做更高效的表達
PAT乙級最優題解——>傳送門
美國總統奧巴馬不僅呼吁所有人都學習編程,甚至以身作則編寫代碼,成為美國歷史上首位編寫計算機代碼的總統。2014 年底,為慶祝“計算機科學教育周”正式啟動,奧巴馬編寫了很簡單的計算機代碼:在屏幕上畫一個正方形。現在你也跟他一起畫吧!
輸入格式:
輸入在一行中給出正方形邊長 N(3≤N≤20)和組成正方形邊的某種字符 C,間隔一個空格。
輸出格式:
輸出由給定字符 C 畫出的正方形。但是注意到行間距比列間距大,所以為了讓結果看上去更像正方形,我們輸出的行數實際上是列數的 50%(四舍五入取整)。
輸入樣例:
10 a
輸出樣例:
aaaaaaaaaa
a a
a a
a a
aaaaaaaaaa
在對行數的判斷上: 若為奇數,則行數為n/2+1, 若為偶數,則行數為n/2
要注意的是,我們的目的是解題,是拿滿分,而不是炫技, 因此一定要先拿到滿分再去追求精巧的代碼。 對于這道題, 我們完全可以不考慮那么多, 直接用特判把前幾種特殊情況都判斷掉, 再用循環進行普適性的輸出。既不費腦子還能拿到滿分, 就是代碼丑了點, 事后補題時完善一下就好了。
代碼展示
#include <bits/stdc++.h> using namespace std; int main() {int n; char c;cin >> n >> c;for (int i = 0; i < n; ++i) cout << c;cout << '\n';int row = (n + 1) / 2;for (int i = 0; i < row - 2; ++i) {cout << c;for (int j = 0; j < n - 2; ++j) cout << ' ';cout << c << '\n';}for (int i = 0; i < n; ++i) cout << c;return 0; }每日一句
永遠相信美好的事情即將發生(^-^)
總結
以上是生活随笔為你收集整理的1036 跟奥巴马一起编程 (15分)——16行代码AC的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 测试点2错的来:1033 旧键盘打字 (
- 下一篇: 14行代码满分:1037 在霍格沃茨找零