[Python]バックアップアルゴリズム#11050


📝 質問する



入力



🖨 しゅつりょく



入力#の例

5 2

🖨 サンプル出力

10

📚 私が提出したコード

import sys
n, k = map(int, sys.stdin.readline().split())
if k == 0:
    print(1)
elif k == 1:
    print(n)
else:
    numerator = 1; denominator = 1
    if k > n - k:
        k = n - k
    for i in range(n, n - k, -1):
        numerator *= i
    for i in range(2, k + 1):
        denominator *= i
    print(numerator // denominator)

▼▼私が提出したコードの説明

  • sys.stdin.readline():キーボード入力値を受信する関数(既存のinput()よりずっと速い)
  • 関数
  • a.split():aが返す関数
  • をスペース単位で分割する
  • map(a,b):関数
  • は、bの各要素をaに代入することを返します.
  • kが0の場合、結果値はn値に関係なく1となる.(3-4行目)
  • kが1の場合、結果値は常にnである.(5-6行目)
  • range(a,b,c):aからbまでのcを1つずつ加算する関数(ex.range(5,-1)=5,4,3,2,1,0)
  • を返します.
  • 最後の行が//ではなく//を使用する理由は、//を書き込むときに出力される結果値が実数範囲であるため、
  • メモリ:30864 KB
  • 時間:76 ms
  • コード長:331 B