-4

次のような三角形を生成する関数をどのように記述しますか。

    x
   xx
  xxx
 xxxx
xxxxx

関数が であるとしましょうdef triangle(n)、一番下の行にnはxの量があります

私が知っているのは、箱を作ることだけです:

n = 5
for k in range(n):
    for j in range(n):
        print('x', end='')
    print()
4

5 に答える 5

3

おいそれは超簡単です:

def triangle(n):
    for i in range(1, n +1):
        print ' ' * (n - i) + 'x' * i

あるいは:

def triangle(n):
    for i in range(1, n +1):
        print ('x' * i).rjust(n, ' ')

の出力triangle(5):

    バツ
   xx
  xxx
 xxxx
xxxxx

理解せずにこのコードをただコピーするのではなく、どのように機能するかを試してみてください。通常、プログラミング言語の学習を練習する良い方法は、さまざまな問題に挑戦し、その解決方法を確認することです。私が最初にプログラミングを始めたときによく使っていたので、このサイトをお勧めします。

また、行き詰まった場合にのみ、やり方がわからない場合は、宿題などを投稿しないでください。まず、何かを理解できると思われる多くの方法を考えてみてください。特定のタスクの実行方法がわからない場合は、調べてそこから学びましょう。

于 2012-12-17T05:56:59.367 に答える
0

これは、プログラムに加えることができる小さな変更です

n = 5
for k in range(n):
    for j in range(n):
        print('x' if j+k >= n-1 else ' ', end='')
    print()

しかし、それはあまり良い方法ではありません。このようなものを使用して、一度に全体を印刷することを検討する必要があります

n = 5
for k in range(n):
    i = ???
    j = ???
    print(' '*i+'x'*j)

あなたはただ運動する必要がありij

于 2012-12-17T05:24:50.010 に答える
0

答え:

def triangle(i, t=0):
    if i == 0:
        return 0
    else:
        print ' ' * ( t + 1 ) + '*' * ( i * 2 - 1 )
        return triangle( i - 1, t + 1 )
triangle(5) 

出力:

* * * * * * * * *
   * * * * * * *
     * * * * *
       * * * 
         *
于 2016-09-07T15:32:31.067 に答える
0
hight = 5
for star in range(hight):
    for num in range(hight):
        print('*' if num+star >= hight-1 else ' ', end='')
    print()
于 2016-03-14T09:20:56.897 に答える