我一直试图找到如何使用递归检查整数的长度。例如:100,它会说有3个数字。 12,它会说有2个数字。
我在网上看到的都是最后一位数字的求和。我无法寻求有关整数长度的帮助。
有人可以帮我解决这个问题吗? 我尝试过使用lens来计数,但我的输出总是0。
def num(x):
if x == 0:
return 0
else:
return num(x / 10)
print len(str(num(100)))
我也尝试过这个
def num(x):
if x == 0:
return 0
else:
return num(x / 10) + len(str(x % 10))
print num(100)
最佳答案
如果 N 不为 0,则需要用 num(N/10)
加 1:
>>> def num(N):
... if N==0:
... return 0
... return 1+num(N/10)
...
>>> num(100)
3
此代码将在每次使用 N/10
调用该函数时添加 1,直到达到 0,因此最后根据您的数字可以除以 10 的时间,您将得到 1相加后,最后为 0 则加 0。
例如,对于 100,您的函数将执行以下操作:
1+(100/10)
^
1+1+(10/10)
^
1+1+1(1/10)
^
1+1+1+0
关于python - 如何使用递归计算整数的长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33008152/