일단 빨리 풀자
 
import math 
 
n, m = map(int, input().split())
 
print(math.gcd(n, m))
 
 
 
n = int(input())
 
 
def print_star(a):
  if a<=n:
    print('*'*a)
    return print_star(a+1)
  else:
    return 0
 
print_star(1)
 
구글링했는데, 이해 안감
 
def wubak(n):
  if n == 1:
    return print(n)
 
#  print("9:", n)  
 
  if n % 2 == 1:
#    print("10:", n)
    wubak(3 * n + 1)
  else:
#    print("11:", n)
    wubak(n // 2)
 
  return print(n)
 
a = int(input())
wubak(a)
 
왜 처음 if에 a==1을 넣어야만 loop를 끝내는가? 마지막에 넣으면 계속 돈다....
 
n = int(input())
 
def certain_no(a):
  print(a)
  if a==1:
    return 0
  elif a%2==1:
    a=3*a+1
#    print("1:",a)
    return certain_no(a)
  elif a%2==0:
 #   print("2:",a//2)
    return certain_no(a//2)
 
certain_no(n)
 
난 재귀함수를 사용하지 않고, bin(int)의 함수에서 0b앞의 두자리를 제외하고 출력해 버렸다...(이건 의도와는 맞지 않지만, 엔지니어링 입장에서는 맞다!)
 
a = int(input())
 
b=bin(a)
print(b[2:])
 
 
10009를 나누라고 본문에 나옴
 
a = int(input())
fibo = [0] * 201
 
 
def fib(n):
  if n < 2:
    return n
  if fibo[n] == 0:
    fibo[n] = (fib(n - 1) + fib(n - 2)) % 10009
#    print("n=",n,"fibo[n]=",fibo[n])
 
  return fibo[n]
 
 
print(fib(a))
 
 
================================================>
구글링하다보니
 
fib={1:1,2:1}
 
def f(x) :
    if x in fib:
        return fib[x]
    fib[x]=(f(x-1)+f(x-2))%10009
    return fib[x]
 
n=int(input())
print(f(n))
로 하면 깔끔하게 끝남
 

+ Recent posts