2024-09-27 04:21:49 发布
网友
我必须找到数字和,直到它是个位数。 如果输入为-9999,则输出应为-9(-(9+9+9+9))==-9)
(-(9+9+9+9))==-9)
如果输入是9012,那么输出应该是3(+(9+0+1+2)==1+2==3))
(+(9+0+1+2)==1+2==3))
ps:我已经解决了这个问题,但是负输入给出了错误的输出。我正在使用9除法属性(你可以用谷歌搜索它)来得到o(1)解
我的代码:
def digSum(n): if (n == 0): return 0 if (n % 9 == 0): return 9 else: (n % 9)
您的代码很接近,但您需要检查输入是否为负数,然后再评估它是否调制9。如果n%9==0并返回9,您当前的代码将进行计算,但是您应该添加一个条件来检查它是否为负数,并首先检查n%9,否则它将始终返回正数
将您的代码修改为:
def digSum(n): if (n == 0): return 0 if (n % 9 == 0 and n < 0): return -9 if (n % 9 == 0): return 9 else: (n % 9)
一个简单的递归应该会有帮助,把它添加到你的代码中
if n < 0: return - digSum(abs(n))
您的代码很接近,但您需要检查输入是否为负数,然后再评估它是否调制9。如果n%9==0并返回9,您当前的代码将进行计算,但是您应该添加一个条件来检查它是否为负数,并首先检查n%9,否则它将始终返回正数
将您的代码修改为:
一个简单的递归应该会有帮助,把它添加到你的代码中
相关问题 更多 >
编程相关推荐