Python计算整数位平方和的n次迭代结果
计算整数位平方和的n次迭代结果
问题描述:
定义一个整数的'位平方和'为其每个数位平方后的和。例如,整数 4 的位平方和为 16 (4² = 16)。对新得到的整数可以继续进行这一运算过程。 本题要求:已知一个整数 x,求其位平方和的第 n 步运算结果。
输入格式:
两个正整数 x 和 n,以空格分隔,分别表示起始整数和迭代次数。其中,0 < x, n < 100000。
输出格式:
一个整数,表示 x 的位平方和的第 n 次迭代结果。
示例:
输入 1:
4 3
输出 1:
58
输入 2:
1314 10
输出 2:
20
**Python 代码实现:**pythondef digit_square_sum(x: int) -> int: '''计算整数的位平方和。''' total = 0 while x > 0: digit = x % 10 total += digit * digit x //= 10 return total
x, n = map(int, input().split())
result = xfor _ in range(n): result = digit_square_sum(result)
print(result)
代码解释:
digit_square_sum(x)函数计算整数 x 的位平方和。2. 主程序首先读取输入的整数 x 和 n。3. 使用循环迭代 n 次,每次调用digit_square_sum()函数计算当前 result 的位平方和,并将结果更新到 result。4. 最后输出最终的 result。
算法复杂度:
- 时间复杂度:O(n * log(x)),其中 n 为迭代次数,log(x) 为 x 的位数。- 空间复杂度:O(1)。
原文地址: https://www.cveoy.top/t/topic/dSKM 著作权归作者所有。请勿转载和采集!