📅  最后修改于: 2023-12-03 14:54:29.946000             🧑  作者: Mango
本程序根据用户输入的数字,将打印出所有该数字的单位位数的倍数。
例如,对于数字1234,其单位位数为1、10、100、1000,因此程序将打印出1、10、100、1000、1234、2468等数字。
def get_multipliers(num):
"""
获取一个数字的单位位数的倍数
"""
result = []
for i in range(len(str(num))):
base = int('1' + '0' * i)
result.append(int(num / base) * base)
return result
if __name__ == '__main__':
num = int(input('请输入一个数字:'))
multipliers = get_multipliers(num)
print(multipliers)
对于输入的数字1234,程序将输出:
[4, 30, 200, 1000]
其中,4、30、200、1000分别为1234的个位、十位、百位、千位的倍数。
本程序的算法思路如下:
1.获取数字的位数。
2.将数字按照1、10、100、1000等单位,依次求出其倍数。
3.返回所有的倍数。
本算法的时间复杂度为O(n),其中n为数字的位数。在输入较大的数时,算法效率可能会有所降低。