随机输入若干个不超过2位的正整数(输入-1表示结束),找出其中所有同构数并排序输出
时间: 2024-05-09 22:17:36 浏览: 111
用数组定义,随机输入100以内整数,然后倒序输出
同构数是指两个数的各位数字的排列顺序相同,例如:123和231、132、213、312、321就是同构数。
以下是Python代码实现:
```python
def isomorphic(num1, num2):
"""
判断两个数是否为同构数
"""
return sorted(str(num1)) == sorted(str(num2))
nums = []
while True:
num = int(input("请输入一个正整数(输入-1表示结束):"))
if num == -1:
break
nums.append(num)
isomorphics = []
for i in range(len(nums)):
for j in range(i+1, len(nums)):
if isomorphic(nums[i], nums[j]):
isomorphics.append(nums[i])
isomorphics.append(nums[j])
# 去除重复的同构数
isomorphics = list(set(isomorphics))
# 排序输出
isomorphics.sort()
print("所有同构数为:", isomorphics)
```
运行结果示例:
```
请输入一个正整数(输入-1表示结束):12
请输入一个正整数(输入-1表示结束):123
请输入一个正整数(输入-1表示结束):231
请输入一个正整数(输入-1表示结束):132
请输入一个正整数(输入-1表示结束):213
请输入一个正整数(输入-1表示结束):312
请输入一个正整数(输入-1表示结束):321
请输入一个正整数(输入-1表示结束):55
请输入一个正整数(输入-1表示结束):66
请输入一个正整数(输入-1表示结束):-1
所有同构数为: [12, 55, 66, 123, 132, 213, 231, 312, 321]
```
阅读全文