問題描述:輸入 n 值,並依據 n 值輸出三角形如下。
例:n=4
--- *
--* *
-** *
*** *

當輸入 3 時,印出
-- *
-* *
** *


【解題步驟一】
分析問題,大方向思考。
當 n=4 時,以二維座標 4x4 而言 (x,y) 值如下:
(0,0)
(1,0)
(2,0)
(3,0)
(0,1)
(1,1)
(2,1)
(3,1)
(0,2)
(1,2)
(2,2)
(3,2)
(0,3)
(1,3)
(2,3)
(3,3)
紅色座標印出 *,黑色座標印出 -
數字上的分析好像 x+y 若大於等於 3 就印出 *,
否則印出 -。

當 n=3 時,以二維座標 3x3 而言 (x,y) 值如下:
(0,0)
(1,0)
(2,0)
(0,1)
(1,1)
(2,1)
(0,2)
(1,2)
(2,2)
紅色座標印出 *,黑色座標印出 -
數字上的分析好像 x+y 若大於等於 2 就印出 *,
否則印出 -。


因此可歸納出 x+y >=n-1,則印出 *,否則印出 -。

int x,y,n,t;
n=4;
for(y=0;y<n;y++){
     for(x=0 ; x<n; x++){
          if(x+y>=n-1){
               printf("*");
          }
          else{
               printf("-");
          }
     }
     printf("\n");
}


【類似範例練習】
1.寫一程式依據輸入印出圖形.
當輸入 4 時,印出
1
2
1
2
3
2
1
2
3
4
3
2
1
2
3
4
3
2
1
2
3
2
1
2
1

解答
2.寫一程式依據輸入印出圖形.
當輸入 4 時,印出
a
a
a
a
a
a
a
a
b
b
b
b
b
a
a
b
c
c
c
b
a
a
b
c
d
c
b
a
a
b
c
c
c
b
a
a
b
b
b
b
b
a
a
a
a
a
a
a
a

解答
3.寫一程式依據輸入印出圖形.
當輸入 4 時,印出
D
C
B
A
B
C
D
C
B
A
B
C
B
A
B
     
A
     
B
A
B
C
B
A
B
C
D
C
B
A
B
C
D

解答