問題1
数学の解き方
数値の1桁目 * n進数^数値の桁数-1 + 数値の2桁目 * n進数^数値の桁数-2 + ... + 数値のx桁目 * n進数0 juken-mikata.net
問題2
8進数から9進数に変更する問題
解き方としては8進数 → 10進数 → 9進数に変更していく流れ
下記の関数はすぐに取り出せるようにしておいてよいかも.
n_to_ten
関数は、
- 整数をmodする
- 末桁の数値を取得
- x進数 ** 桁数の冪乗
を行うことによって、 n * base^桁数
を実行している
ten_to_n
関数は、
- 整数をmodする
- n進数に変更した際の末桁を取得
- 末桁を先頭に文字列として結合する
上記によって変換後の値を取得している
Sample
n, k = map(int, input().split()) def n_to_ten(target_num, base): result = 0 digit = 0 while target_num > 0: last_num = target_num % 10 # n * base^m + n * base^m-1 + ... + n * base^0 result += last_num * (base ** digit) target_num //= 10 digit += 1 return result def ten_to_n(target_num, base): if target_num == 0: return "0" result = "" while target_num > 0: result = str(target_num % base) + result target_num //= base return result for _ in range(k): n = n_to_ten(n, 8) n = ten_to_n(n, 9) n = int(n.replace("8", "5")) print(n)