获取数字和的最有效方法是什么?

2024-09-27 04:21:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我必须找到数字和,直到它是个位数。 如果输入为-9999,则输出应为-9
(-(9+9+9+9))==-9)

如果输入是9012,那么输出应该是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) 

Tags: 代码returnif属性def错误数字else
2条回答

您的代码很接近,但您需要检查输入是否为负数,然后再评估它是否调制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))

相关问题 更多 >

    热门问题