|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
第一次遇到这个错误(如题)
目标是想求每个数的平方和(如 9 -> 9^2=81; 81 -> 8^2+1^2=65)
- def find_next_number(num: int) -> int:
- if num not in visited:
- new_num = sum(int(i) ** 2 for i in str(num))
- visited[num] = new_num
- else:
- return visited[num]
复制代码
这是实现代码,visited是一个字典,保存出现过的值
单句测试没有问题,但是放到函数里的时候,会出现如下报错
- Traceback (most recent call last):
- File "E:/Data_storage/PyCharm/learn/LeetCode/Explore/test2.py", line 19, in <module>
- r = isHappy(19)
- File "E:/Data_storage/PyCharm/learn/LeetCode/Explore/test2.py", line 13, in isHappy
- fast = find_next_number(find_next_number(fast))
- File "E:/Data_storage/PyCharm/learn/LeetCode/Explore/test2.py", line 6, in find_next_number
- new_num = sum(int(i) ** 2 for i in str(num))
- File "E:/Data_storage/PyCharm/learn/LeetCode/Explore/test2.py", line 6, in <genexpr>
- new_num = sum(int(i) ** 2 for i in str(num))
- ValueError: invalid literal for int() with base 10: 'N'
复制代码
请问是哪里出问题了?
8成那个num里面有问题,
你先打印一下str(num)。
|
|