[C_OT44-易] 用星號(“ * ”)畫等腰梯形
問題描述
有天小美在學校上體育課的時候,老師教到體操跳馬的項目,小美看到跳馬是等腰梯形,覺得非常有趣,想用 ”*” 記號把他畫出來,他也覺得等腰梯形上底太小不像跳馬,決定用九個 ”*” 記號當作上底向下延伸,請問小美要怎麼畫呢 ?
有天小美在學校上體育課的時候,老師教到體操跳馬的項目,小美看到跳馬是等腰梯形,覺得非常有趣,想用 ”*” 記號把他畫出來,他也覺得等腰梯形上底太小不像跳馬,決定用九個 ”*” 記號當作上底向下延伸,請問小美要怎麼畫呢 ?
輸入說明
輸入一開始給定一個正整數 n ,代表欲畫出的等腰梯形高度。
輸入一開始給定一個正整數 n ,代表欲畫出的等腰梯形高度。
輸出說明
每一個測試範例的輸出為用星號畫出高為 n 的實心等腰梯形。
每一個測試範例的輸出為用星號畫出高為 n 的實心等腰梯形。
他要從九為上底的梯形梯形,n代表梯形的高,也就是輸出幾列(直行橫列)
****
****
綠底為第一列,所以共三列
橘字為第一行,所以共四行
再來就有另一個問題,怎麼讓她是梯形,以下黃底和綠底的"*"代表空白" ",我們只需要處理左手邊的空白(黃底)即可
n = 3
*************
*************
*************
//第一列:n-1的空白,9個"*"
//第二列:n-2的空白,10個"*"
//第三列:n-3的空白,11個"*"
n = 4
***************
***************
***************
***************
//第一列:n-1的空白,9個"*"
//第二列:n-2的空白,10個"*"
//第三列:n-3的空白,11個"*"
//第四列:n-4的空白,12個"*"
n = 5
*****************
*****************
*****************
*****************
*****************
//第一列:n-1的空白,9個"*"
//第二列:n-2的空白,10個"*"
//第三列:n-3的空白,11個"*"
//第四列:n-4的空白,12個"*"
//第五列:n-5的空白,13個"*"
- #include <iostream>
- using namespace std;
- int main() {
- // [C_OT44-易] 用星號(“ * ”)畫等腰梯形
- int n, p=0;
- while(cin >> n)
- {
- int sp = (n-1);
- if(n == 0)
- {
- cout << "No answer" << endl;
- }
- else
- {
- for(int i = 1;i <= n;i++)
- {
- for(int x = sp;x > 0;x--)
- {
- cout << " ";
- }
- sp--;
- for(int j = 1;j <= 9;j++)
- {
- cout << "*";
- }
- if(p != 0)
- {
- for(int k = (n-p);k < n;k++)
- {
- cout << "**";
- }
- }
- p++;
- cout << endl;
- }
- }
- p=0;
- }
- return 0;
- }
沒有留言:
張貼留言