我想按顺序打印整数的数字,我不想转换为字符串。我试图在给定的整数输入中找到数字的数目,然后将数字除以10 ** (计数-1),例如,1234变为1.234,我可以打印出"1“。现在,当我想要移动到第二个数字时,它会变得很混乱。到目前为止,我的代码如下:注意:请考虑我只能使用整数,并且不允许使用字符串和字符串操作。
def get_number():
while True:
try:
a = int(input("Enter a number: "))
return a
except:
print("\nInvalid input. Try again. ")
def digit_counter(a):
count=0
while a > 0:
count = count+1
a = a // 10
return count
def digit_printer(a, count):
while a != 0:
print (a // (10 ** (count-1)))
a = a // 10
a = get_number()
count = digit_counter(a)
digit_printer(a, count)我希望输出像1234这样的整数,如下所示:
1
2
3
4发布于 2022-04-22 18:30:57
使用模块收集倒序的数字,然后打印出来:
n = 1234
digits = []
while n > 0:
digits.append(n%10)
n //=10
for i in reversed(digits):
print(i)递归技巧:
def rec(n):
if n > 0:
rec(n//10)
print(n%10)
rec(1234)发布于 2022-04-22 18:44:05
找到所需的最大功率,然后返回:
n = 1234
d = 1
while d * 10 <= n:
d *= 10
while d:
print(n // d % 10)
d //= 10https://stackoverflow.com/questions/71972923
复制相似问题