前提
アルゴ式で競プロの勉強した際に出てきたプログラムが理解できない
理解できない点
・4行目のreturn 1がどのような処理を行っているのか
・7~11行目がどのような処理を行っているのか
発生している問題
「整数 Nが与えられたときの2^Nを10で割った余りを計算しなさい」という問題のサンプルプログラムが理解できない
該当のソースコード
python3
1def calc(N): 2 # 終端条件 3 if N == 0: 4 return 1 5 6 # たとえば 2^10 = 2^5 * 2^5、2^11 = (2^5 * 2^5) * 2 7 half = calc(N // 2) 8 res = half * half 9 if N % 2 == 1: 10 res *= 2 11 return res % 10 12 13N = int(input()) 14print(calc(N))
試したこと
・「return1 意味」、「python 戻り値」などと検索する
・再帰関数について調べる
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。