forもwhileも使わない繰り返し
こんにちは。今日はちょっとした小ネタです。forもwhileも使わないで繰り返しを書きます。
昇順で数えてみる
def loop( n ):
if n>1:
loop( n-1 )
print( n )
loop( 5 )
一応、実行結果も載せておきます。
1
2
3
4
5
降順に数えてみる
def loop( n ):
print( n )
if n>1:
loop( n-1 )
loop( 5 )
これも一応、実行結果も載せておきます。
5
4
3
2
1
和を求めてみる
1から10までの和を求めてみます。
def sum( n ):
if n>0:
return n + sum( n-1 )
else:
return 0
print( sum( 10 ) )
一応、実行結果です。
55
リストを表示してみる
リスト(配列)を表示します。
def display( months ):
if len( months )!=0:
print( months[0] )
display( months[1:] )
display( [ 'January', 'February', 'March', 'April', 'May' ] )
このプログラムの実行結果です。
January
February
March
April
May
次に逆順に表示してみます。
def display( months ):
if len( months )!=0:
display( months[1:] )
print( months[0] )
display( [ 'January', 'February', 'March', 'April', 'May' ] )
これの実行結果です。
May
April
March
February
January
九九を表示してみる
2重ループです。
def multi1( m, n ):
if n>0:
multi1( m, n-1 )
print( multi2( m, n ) )
def multi2( m, n ):
if m>1:
return '{:2} {:2}'.format( multi2( m-1, n ), m*n )
else:
return n
multi1( 9, 9 )
実行結果です。
1 2 3 4 5 6 7 8 9
2 4 6 8 10 12 14 16 18
3 6 9 12 15 18 21 24 27
4 8 12 16 20 24 28 32 36
5 10 15 20 25 30 35 40 45
6 12 18 24 30 36 42 48 54
7 14 21 28 35 42 49 56 63
8 16 24 32 40 48 56 64 72
9 18 27 36 45 54 63 72 81
1つの関数だけでなんとかできるように思うんだけれど・・・
今回試してみたことは、再帰の特訓に使えるように思います。
今回はこれでおしまいにします。それではまた。
ディスカッション
コメント一覧
まだ、コメントがありません