[PyLv 1]コーラの推測


問題の説明


1937年にCollatzが提案したこの推測は,与えられた数が1になる前に次のタスクを繰り返し実行すれば,すべての数を1にすることができるということである.操作は次のとおりです.
1-1. 入力した数字が偶数の場合は2に分けられます.
1-2. 入力した数字が奇数の場合、3を掛けて1を加算します.
2.結果が1になるまで、同じ操作を繰り返します.
例えば、入力された数字が6であれば、6→3→10→5→16→8→4→2→1の計8回が1となる.上記の操作を何回繰り返すかを示す関数を返します.解決策を完了します.ただし、タスクを500回繰り返しても1未満の場合は、-1を返します.

せいげんじょうけん


入力された数字は
  • で、numは1または800000未満です.
  • I/O例



    方法


    😁 また笑顔で答えられる問題に遭遇しました.
    私は見るとwhileの文章を書きたいと思っています.条件を満たす前に繰り返してもいいです.
    思いついた.
    while文のすべての実行が終了し、countが1増加します.
    符号化が行われているのでcount<501を条件として用いる.
    残りはすべて問題に現れた.
    簡単な問題なので、余計な説明はしません.
    =============================================================
    def solution(num):
        count = 0 
        while count < 501:
            if num == 1:
                break
            elif num % 2 == 0:
                num = num / 2
            else:
                num = num * 3 + 1
            count +=1 
        
        if count > 500:
            return -1
        else:
            return count