math라는 모듈 안에는 다양한 함수들이 있는데 그 중 factorial함수를 불러와 사용한다.
from math import factorial
1. 이항 계수
#이항 계수
from math import factorial
n, k = map(int, input().split())
result = factorial(n) // (factorial(k) * factorial(n-k))
print(result)
from itertools import combination 이라고 itertools 모듈 내에 있는 조합 함수를 불러와 사용하는 법도 배웠었는데,
아직 잘 모르겠어서 다른 문제에 적용해보고자 한다..
2. 더하기 사이클
#더하기 사이클
n = int(input())
if n < 10:
n = n * 10
count = 0
a = n//10
b = n%10
while True:
sum = a + b
if sum >= 10:
sum = sum%10
sum = b*10 + sum
count += 1
if sum == n:
break
a = sum//10
b = sum%10
print(count)
이것저것 조건을 추가하고 수정하다보니 이 정도 길이로 작성하게 되었는데, 다른 분들 코드를 살펴보니 더 짧게 작성되는 것을 알게 되었다.
#더하기 사이클_2
n = check = int(input())
if n < 10:
n = n * 10
count = 0
while True:
ten = n//10
one = n % 10
sum = ten + one
count += 1
n = int(str(n % 10)+str(sum % 10))
if n == check:
break
print(count)
와우.. 문자열로 변환해주고 +로 합쳐준 후에 정수로 다시 변환해주는 방법이 있었다. 신기해
#더하기 사이클_3
n = check = int(input())
if n < 10:
n = n * 10
count = 0
while True:
tmp = n//10 + n%10
sum = (n%10)*10 + tmp%10
count += 1
n = sum
if sum == check:
break
print(count)
n = sum으로 다시 넣어줘서 while문이 돌아가게 해준다.
반응형