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

使用递归检查整数的位数是否为偶数

钱安和
2023-03-14

需要检查整数的位数是否与递归偶数。

这里没有递归:

private static boolean jeParanBrCifara(int n) {
    int brojCifara = String.valueOf(n).length();
    if (brojCifara % 2 == 0) 
        return true;
    else 
        return false;
}

这是使用递归计数数字的代码

public  int DigitsCount(int Number) {    
    if (Number > 0) {
        Count = Count + 1;
        DigitsCount(Number / 10);
    }
    return Count;
}

但是如何制作一个递归方法,该方法将整数作为参数并返回 true(如果位数为偶数)的 false?

我这样做了,但不确定是否正确:

static int Count = 0;
public static boolean isEven(int Number) {
    boolean even = false;
    if (Number > 0) {
        Count = Count + 1;
        isEven(Number / 10);
    }
    if (Count % 2 == 0) {
        even = true;
    }
    return even;
}

有什么建议/提示吗?

共有3个答案

潘国源
2023-03-14

既然我们知道数字%2将返回0或1,我将假设您不应该使用它来确定数字是偶数还是奇数。

您应该设置您的基本情况(如果1,则返回false)

然后检查n-1是偶数还是奇数,并返回相反的结果。

许琛
2023-03-14

递归是用函数本身来表达函数,但对于一个较小的问题。类似于:

  • 如果数字为9或更低,则为假
  • 如果数字为99或更低,则为真
  • 否则,除以100,检查结果是否为偶数位数
魏鹤轩
2023-03-14

考虑随着位数的增加,答案会如何变化:

  • 1位-false
  • 2位-true
  • 3位-false
  • 4位-true
  • 等等

看到模式了吗?一个数字问题的答案是假的,n个1位数字问题的答案是n位数字问题的答案的倒数。

由于您已经知道将位数减少 1 是通过在整数中除以 10 来完成的,因此您应该能够用几行代码编写上述算法的解决方案。

 类似资料:
  • 问题内容: 如何检查Java整数是否为另一个数字的倍数?例如,if 是4的倍数。 问题答案: 使用余数运算符(也称为模运算符),该运算符返回除法的余数,并检查其是否为零:

  • 问题内容: 我正在尝试制作一个程序来检查单词是否是回文,并且到目前为止,它可以与具有偶数个数字的单词一起使用。我知道如果字母的数量为奇数时如何使它起作用,但是我只是不知道如何确定数字是否为奇数。有什么简单的方法可以找到数字是奇数还是偶数? 仅供参考,这是我的代码: 谢谢 问题答案: if num % 2 == 0: pass # Even else: pass # Odd 该符号就像除法一样,仅检

  • 问题内容: 任何人都可以推荐一种 有效的 方法来确定a是否为数学意义上的整数吗? 目前,我有以下代码: …但是希望在必要时避免创建对象的开销。以前,我使用的是如果内部使用紧凑的表示形式则可以避免创建对象,但是如果值太大而无法容纳很长的对象,则显然会失败。 任何帮助表示赞赏。 问题答案: 根据值的来源/用途,首先检查刻度是否小于等于0可能会更快。如果是,那么从数学意义上讲,它绝对是整数。如果是> 0

  • 问题内容: 是否有任何方法或快速方法来检查Java中数字是否为整数(属于Z字段)? 我考虑过从四舍五入的数字中减去它,但是我没有找到任何可以帮助我解决这个问题的方法。 我应该在哪里检查?整数Api? 问题答案: 又快又脏… 编辑:假设x已经是其他数字形式。如果要处理字符串,请查看。

  • 本文向大家介绍使用递归查找数字是否为素数的Python程序,包括了使用递归查找数字是否为素数的Python程序的使用技巧和注意事项,需要的朋友参考一下 当需要使用递归技术查找数字是否为质数时,将定义一个方法,并使用“ while”条件。 递归计算较大问题的小位的输出,并将这些位组合以给出较大问题的解决方案。 示例 以下是相同的演示- 输出结果 解释 定义了一个名为“ check_prime”的方法

  • 我需要编写一个程序,递归检查一个数是否是斐波那契数;重复完成同样的任务很容易;同样,递归地找到第n个斐波那契数也很容易,但我陷入了如何使用递归检查一个数是否是斐波那契数的困境。以下是查找第n个fib的代码。编号: 我不知道怎么做的是如何修改上面的代码来检查给定的数字是否是斐波那契?