2012年1月22日 星期日

d649: 數字三角形

內容 :
    小米是個喜歡畫三角形的小朋友
    上課時小米覺得無聊都會在課本的一角畫三角形
    首先畫了
    *

    接著是
    *
    **

    再來
    *
    **
    ***

    就這樣一直畫到下課
    但是這樣太簡單而且太無聊了
    小米想:為何我不向右對齊呢?
    但就在下一節課小米嘗試畫出新三角形時
    小米怎麼樣也沒辦法向右對齊
    就請大家幫小米這個忙吧!

輸入說明 :
    輸入一數字 N (0 ≤ N ≤ 1000)
    代表小米想畫出高度為 N 的三角形
    當 N 為 0 時結束程式,不需處理這行輸入

輸出說明 :
    請輸出一個高為 N ,底也為 N 的三角形
    每組輸出請用空行隔開
    空白請用 '_' 代替
    星號請用 '+' 代替

範例輸入 :
3
5
0

範例輸出 :
__+
_++
+++

____+
___++
__+++
_++++
+++++

提示 :
    背景知識: 雙層迴圈
    ¤ 雙層迴圈練習題
    ¤ 有問題盡量問,這裡不是知識+不會扣點XD (雖然回答也沒有解答贈點)
    ¤ 小挑戰: 你可以用一個字元陣列解決問題嗎?
    ¤ 因應 JAVA 使用者將每測資點時限改為 10 s 並修改測資 (感謝 liouzhou_101)
    ¤ 2010/07/13 修改測資,並重測

程式碼 :
#include <stdio.h>

int main()
{
    int i,j,k,n;
    
    while(scanf(" %d",&n)==1 && n!=0)
    {
        for(i=0;i<n;i++)
        {
            for(j=0;j<(n-i-1);j++)
                printf("_");
            for(k=i+1;k>0;k--)
                printf("+");
            printf("\n");
        }
    }   
    return 0;
}




http://zerojudge.tw/ShowProblem?problemid=d649

沒有留言:

張貼留言