当前位置: 首页 > 知识库问答 >
问题:

当整数中有偶数0时,如何编写python函数返回True,否则使用递归返回False?

百里胜泫
2023-03-14

我被要求编写一个函数,如果正整数中有偶数个 0 位数字,则返回 True,否则返回 False(使用递归)。作为尝试,我编写了一个函数来计算整数中的 0 数。我可以知道如何修改程序以使其返回真和假吗?

def valid(n):
    number = str(n)
    position = number.find("0")

    if "0" not in number:
        return 0

    return 1 + valid(number[(position+1):])


print(valid(12340006))

共有3个答案

陈宜修
2023-03-14

我认为问题在于如果“0”不在number条件中,则从< code >返回< code>0。你可以试试这个方法:

def valid(n):
    
    zeros = str(n).count("0")
    
    if zeros == 0:
        return False
    else:
        return zeros % 2 == 0

这应该行得通。

章心水
2023-03-14
def valid(n):
    number = str(n)
    position = number.find("0")
    if "0" not in number:
        return 0
    return 1 + valid(number[(position+1):])
print("True" if valid(12340006)%2 ==0 else "False")
裴意
2023-03-14

我们可以注意到

  • [递归基数] 单个零无效,其他个位数有效
  • [递归步骤] 当我们看到非零数字时,什么都不应该改变(检查剩余部分应该给出相同的结果)。当我们看到零时,我们应该反转结果(如果以前是奇数,现在是偶数,反之亦然)。
def is_valid(num):
    n, r = divmod(num, 10)
    if n == 0:
        return r != 0
    return (not is_valid(n) if r == 0 else is_valid(n))
 类似资料:
  • 我有一个递归函数,它会重复这个函数,直到不满足if条件,然后输出一个整数。但是,此函数之外需要整数的函数正在接收一个单位。我应该如何修改代码以返回int? 这就是整个程序 }

  • 我正在编写一个递归函数,如下所示: 此函数用于接收员工并查找其管理者。如果找到管理器,则将管理器id推送到数组中($)- 所以我的问题是,如果我不在第6行返回递归调用(这是-

  • 问题内容: 我有这段代码,由于某种原因,当我尝试返回路径时,我得到None: 有办法解决吗?提前致谢。 问题答案: 你需要返回递归结果: 否则,该函数仅在执行该语句后结束,导致None返回。 你可能要下降了,总是返回结尾: 因为如果是,False那么你也将在没有功能的情况下结束功能return。如果在这种情况下None递归不是正确的选择,而在返回则不是正确的选择,那么你也需要处理这种边缘情况。

  • 问题内容: 我有一个计算税金的函数。 我不明白为什么它不能停止递归。 问题答案: 在您的职能部门中: 您没有从函数或设置中返回值。当您不返回任何内容时,返回值为。 也许,您想要这样:

  • 请帮帮忙 我正在用VisualBasic2010用C写一个程序,这个程序叫做“回文整数”。我需要写两个函数,一个是//返回整数的倒数。例如,reverse(456)返回654//并带有标题:-- 倒整数(整数) 我需要写另一个函数,//返回true,如果数字是一个回文//标题:- bool isPalindrome(整数) 我需要使用reverse函数来实现isAlindrome函数。如果一个数字