pandasでpaiza問題(二重ループ:log2)

スポンサーリンク

paizaへのリンク(二重ループ:log2 (paizaランク C 相当)

pandasのDataframeを使って、df1[0]に元データを格納し、df1[1]に2で割れる数を格納する。

import pandas as pd

n = int(input())

lst1 = list(range(1, n + 1))
df1 = pd.DataFrame(lst1)
df1[1] = 0

for i in range(n):
    tmp1 = df1.iat[i, 0]
    tmp2 = 0
    while True:
        if tmp1 % 2 == 0:
            tmp1 = tmp1 / 2
            tmp2 += 1
        else:
            break

    df1.iat[i, 1] = tmp2

print(df1[1].sum())

PycharmのsciviewでDataFrameを確認するとこうなる。

「pandasでpaiza問題」記事一覧へのリンク

コメント

当ブログのコンテンツが気に入ったら広告ブロックの解除(ホワイトリスト化)をご検討下さい。

Please disable your adblocker or whitelist this site!

タイトルとURLをコピーしました