ヒント

(1)まず,大きさ固定の図形(n=7)から考えよう

*******
******
*****
****
***
**
*

まずまともに考えてみる

「*」を7個書いて改行する
「*」を6個書いて改行する
「*」を5個書いて改行する
「*」を4個書いて改行する
「*」を3個書いて改行する
「*」を2個書いて改行する
「*」を1個書いて改行する

全部で7行であり,同じような記述なので
for (i=0; i<7; i++) {
    「*」を○個書いて改行する
}
という形になることに気づく。
繰り返し時のiの値は,0,1,2,3,4,5,6のように変化する。

iの値が0,1,2,3,4,5,6の時,「*」を書く個数は7,6,5,4,3,2,1である。

そこで次のように考える

iの値

「*」を書く個数

0

7

1

6

2

5

3

4

4

3

5

2

6

1

一般的にiなら

7-i

for (i=0; i<7; i++) {
    「*」を(7-i)個書いて改行する
}

(2)次に,大きさ固定の図形(n=9)を考えよう

*********
********
*******
******
*****
****
***
**
*

まずまともに考えてみる

「*」を9個書いて改行する
「*」を8個書いて改行する
「*」を7個書いて改行する
「*」を6個書いて改行する
「*」を5個書いて改行する
「*」を4個書いて改行する
「*」を3個書いて改行する
「*」を2個書いて改行する
「*」を1個書いて改行する

全部で9行なので
for (i=0; i<9; i++) {
    「*」を○個書いて改行する
}
という形になることに気づく。
繰り返し時のiの値は,0,1,2,3,4,5,6,7,8のように変化する。

iの値が0,1,2,3,4,5,6,7,8の時,「*」を書く個数は9,8,7,6,5,4,3,2,1である。
一般的にiのとき,,「*」を書く個数は9-iである。

そこで次のように考える

for (i=0; i<9; i++) {
    「*」を(9-i)個書いて改行する
}

 
 
(3) n=7の時とn=9の時に共通する考え方を導き出そう
n=7の時には7行となり

for (i=0; i<7; i++) {
    「*」を(7-i)個書いて改行する
}

n=9の時には9行となり

for (i=0; i<9; i++) {
    「*」を(9-i)個書いて改行する
}


同じ規則で考えると,n=5の時には5行となり


for (i=0; i<5; i++) {
    「*」を(5-i)個書いて改行する
}

なる。またn=11の時には6行となる

for (i=0; i<11; i++) {
    「*」を(11-i)個書いて改行する
}

となる。これをまとめると一般にnの場合は

for (i=0; i<n; i++) {
    「*」を(n-i)個書いて改行する
}

とすればよい。