2017年10月6日 星期五

[C_OT44-易] 用星號(“ * ”)畫等腰梯形(C++)

[C_OT44-易] 用星號(“ * ”)畫等腰梯形

問題描述 
有天小美在學校上體育課的時候,老師教到體操跳馬的項目,小美看到跳馬是等腰梯形,覺得非常有趣,想用 ”*” 記號把他畫出來,他也覺得等腰梯形上底太小不像跳馬,決定用九個 ”*” 記號當作上底向下延伸,請問小美要怎麼畫呢 ?
輸入說明 
輸入一開始給定一個正整數 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個"*"

  1. #include <iostream>  
  2. using namespace std;  
  3.   
  4. int main() {  
  5.     // [C_OT44-易] 用星號(“ * ”)畫等腰梯形  
  6.     int n, p=0;  
  7.     while(cin >> n)  
  8.     {  
  9.         int sp = (n-1);  
  10.         if(n == 0)  
  11.         {  
  12.             cout << "No answer" << endl;  
  13.         }  
  14.         else  
  15.         {  
  16.             for(int i = 1;i <= n;i++)  
  17.             {  
  18.                 for(int x = sp;x > 0;x--)  
  19.                 {  
  20.                     cout << " ";  
  21.                 }  
  22.                 sp--;  
  23.                 for(int j = 1;j <= 9;j++)  
  24.                 {  
  25.                     cout << "*";  
  26.                 }  
  27.                 if(p != 0)  
  28.                 {  
  29.                     for(int k = (n-p);k < n;k++)  
  30.                     {  
  31.                         cout << "**";  
  32.                     }  
  33.                 }  
  34.                 p++;  
  35.                   
  36.                 cout << endl;  
  37.             }  
  38.         }  
  39.         p=0;  
  40.     }  
  41.     return 0;  
  42. }  




沒有留言:

張貼留言