zoukankan      html  css  js  c++  java
  • 【PAT五一线上模拟测试赛】7-2 三阶幸福数 (20分) Pyton+Java

    7-2 三阶幸福数 (20分)

    对一个十进制数的各位数字做一次立方和,称作一次迭代。如果一个十进制数能通过 h 次迭代得到 1,就称该数为三阶幸福数,迭代的次数 h 称为幸福度。例如 1579 经过 1 次迭代得到 1198,2 次迭代后得到 1243,3 次迭代后得到 100,最后得到 1。则 1579 是幸福数,其幸福度为 4。

    另一方面,如果一个大于1的数字经过数次迭代后进入了死循环,那这个数就不幸福。例如 97 迭代得到 1072、352、160、217、352、…… 可见 352 到 217 形成了死循环,所以 97 就不幸福,而 352 就是它最早遇到的循环点。

    本题就要求你编写程序,判断一个给定的数字是否有三阶幸福。

    输入格式:
    输入在第一行给出一个不超过 100 的正整数 N,随后 N 行,每行给出一个不超过 10410^4 的正整数。

    输出格式:
    对于每一个输入的数字,如果其是三阶幸福数,则在一行中输出它的幸福度;否则输出最早遇到的循环点。

    输入样例:
    3
    1579
    97
    1

    输出样例:
    4
    352
    0

    def cube(num):
        result = 0
        while num > 0:
            result += (num % 10) ** 3
            num = int(num / 10)
        return result
    
    
    N = eval(input())
    for i in range(N):
        num = eval(input())
        list0 = []
        h = 0
        cube_result = cube(num)
        h += 1
        while cube_result not in list0 and cube_result != 1:
            list0.append(cube_result)
            cube_result = cube(cube_result)
            h += 1
        if cube_result == 1:
            print(h)
        else:
            print(cube_result)
    
  • 相关阅读:
    2021 3 11 结队博客
    第一周 2021.03.07
    2021 3 5 知识点总结
    2021 3 3 每日总结
    2021 3 2 新学期的第一篇博客
    十天冲刺09
    二阶段之四
    安卓开发之实现手机验证码登录
    安卓布局(三)
    安卓布局(二)
  • 原文地址:https://www.cnblogs.com/DreamingFishZIHao/p/12982950.html
Copyright © 2011-2022 走看看