iT邦幫忙

0

#python 如何用遞迴函數 畫出等腰三角形

各位大大不好意思想請問一下
如何使用遞迴函數來畫出等腰三角形

目前會使用for迴圈 來畫出等腰三角形

n = int(input(' 請輸入一個正整數 :'))
for i in range(0 , n):
    print(" * " * (i+1))

使用者輸入6 就會跑出像是這樣的圖形

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

但我試了蠻多次還不太會用遞迴函數來寫程式

def fac (num):
    if num <=0:
        return 1
    else:
        return num * fac(num-1)

num = int(input('請輸入一個正整數 :'))
print( "*" * fac(num))

跑出來的結果跟我要的好像不太一樣..
麻煩大大幫我指出問題
謝謝

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
0
wrxue
iT邦好手 1 級 ‧ 2021-06-05 15:36:15
最佳解答
def tri(num):
    if num == 0:
        return
    tri(num - 1)
    print(' * ' * num)

num = int(input('請輸入一個正整數 :'))  
tri(int(num))

非常謝謝你 ~

0
japhenchen
iT邦超人 1 級 ‧ 2021-06-05 16:09:02
def triangle(dl):
    if(dl>0):
        print(" * "*dl)
        triangle(dl-1)

level  = int(input("輸入層數:"))
triangle(level)

非常謝謝你

0
小魚
iT邦大師 1 級 ‧ 2021-06-05 20:17:55

話說,
這個有等腰嗎?

邊一樣應該就是?! 哈哈我數學也沒很好QQ

小魚 iT邦大師 1 級 ‧ 2021-06-06 13:56:06 檢舉

ㄟ,
這麼說好像也是,
不過跟我原本想的等腰不大一樣...
我以為是這樣的
https://ithelp.ithome.com.tw/upload/images/20210606/20105694154stX7jji.png

我要發表回答

立即登入回答