N88-BASIC,Pythonプログラミング入門 (3回目)
![イメージ](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3fy0C-8Dwza_MqpufcIVO5bt9LM_burdwkPpzSJGj0jsH9_mLo0esxhLa80KROQKWaibYRWz3yfox51R8VTRwVVWJ1rs7-I6-IaBpwrMxZIujJddsm7lsZYABKjuIaJGphFdInFZ3Hvhb2ZbBf0_7maKP6WBlDZnjBUbqZhz0HjCUHxTPkB7Iou7zRo0/w400-h224/py003a1.jpg)
2024/3/31(日) N88-BASIC,Pythonプログラミング入門 (3回目) n!を求める ■ 初めに ▼ 表記 N88-BASICは以後BASICと省略する事にします またBASICの命令は小文字で書いても 自動で大文字に変換されます ▼ nの階乗(n!) n n! = Πi = 1×2× … ×(n-1)×n i =1 = n(n-1)(n-2) … 1 1~nまで自然数が書かれたカードn枚の 並べ方の場合の数は 1 枚目はn 枚から1つ選ぶのでn 通り 2 枚目はn-1枚から1つ選ぶのでn-1通り … n-1枚目は残り2枚から1つ選ぶので2通り n 枚目は残り1枚から1つ選ぶので1通り よって n通り×(n-1)通り× … ×1 = n!通りになる n = 3の時 1, 2, 3から選ぶ 1番 2番 3番目 1 2 3 1 3 2 2 1 3 2 3 1 3 1 2 3 2 1 3 × 2 × 1 = 6通り ■ コード ▼ Python print('nの階乗n!を求める') n = int(input('n = ')) if n < 0: exit() k = 1 for i in range(2, n+1): k *= i #--- k = k * i print(f'{n}! = {k}') ▼ BASIC 10 DEFDBL K '--- K~の桁を増やす(倍精度) 20 PRINT "nの階乗n!を求める" 30 INPUT "n = ", N 40 IF N < 0 THEN END 50 K = 1 60 FOR I=2 TO N 70 K = K * I '--- K *= Iとは書けない 80 NEXT 90 PRINT STR$(N); "! = "; K ■ 説明 ▼ Python 整数型の桁数は実質無制限なのでnが 大きくても計算できます (*は×、/は÷です) ▼ BASIC デフォルトの型(単精度実数)は7桁ほど