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

一个布尔递归函数,用于判断一个数字是否以整数出现偶数次

路阳华
2023-03-14

该函数获取一个整数和一个数字,如果该数字在整数中出现偶数次,则返回true,否则返回false。

例如:

如果 digit=1num=1125,则该函数应返回 true

如果 digit=1num=1234,则该函数应返回 false

bool isEven(int num, int dig)
{
    bool even;

    if (num < 10)
        even = false;
    else
    {
        even = isEven(num/10,dig);

这是我到目前为止得到的,我被卡住了……这是家庭作业,所以请不要写答案,而是提示我并帮助我自己完成。

共有3个答案

何辰沛
2023-03-14

此功能 isEven() 采用单个整数,如果 numberToCheck 的出现次数为偶数,则返回 true。

您可以更改全局定义的基数和数字以检查。

 #include <iostream>



using  std::cout;
using  std::endl;

//  using 10 due to decimal [change it to respective base]
const int  base = 10;
const int  numberToCheck = 5;

//Checks if the number of occurence of "numberToCheck" are even or odd
bool isEven(int n)
{
    if (n == 0)
        return 1;

    bool hasNumber = false;
    int currentDigit = n % base;
    n /= base;

    
    if (currentDigit == numberToCheck)
        hasNumber = true;

    bool flag = isEven(n);

    // XOR GATE
    return ((!hasNumber) && (flag) || (hasNumber) && (!flag));
};

int main(void)
{

    // This is the input to the funtion IsEven()
    int n = 51515;



    if (isEven(n))
        cout << "Even";
    else
        cout << "Odd";

    return 0;
}

使用XOR逻辑整合所有回报

// XOR GATE
    return ((!hasNumber) && (flag) || (hasNumber) && (!flag));
贺懿轩
2023-03-14

表达式 num 将为您提供数字的最后一位数字,这应该会有所帮助。

您的基本情况不正确,因为一个数字可以有偶数个匹配项(零是偶数)。您的递归情况也需要工作,因为您需要为每个匹配反转答案。

刘才俊
2023-03-14

要设置递归,需要考虑两件事:

  1. 基本情况。您可以直接处理的简单案例是什么?例如,你能轻松处理个位数吗
  2. 将所有其他案例减少到基本案例的规则。例如,你能砍掉最后一个数字,并以某种方式将剩余部分数的解转换为整数的解吗

从您的代码中我可以看出,您在这两点上都取得了一些进展。然而,两者都不完整。首先,您永远不会在代码中使用目标数字。

 类似资料:
  • 本文向大家介绍写一个方法判断一个数字是否为整数相关面试题,主要包含被问及写一个方法判断一个数字是否为整数时的应答技巧和注意事项,需要的朋友参考一下

  • 本文向大家介绍JS判断一个数是否是水仙花数,包括了JS判断一个数是否是水仙花数的使用技巧和注意事项,需要的朋友参考一下 水仙花数是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。 例如:1^3 + 5^3+ 3^3 = 153 以上所述是小编给大家介绍的JS判断一个数是否是水仙花数,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

  • 需要检查整数的位数是否与递归偶数。 这里没有递归: 这是使用递归计数数字的代码 但是如何制作一个递归方法,该方法将整数作为参数并返回 true(如果位数为偶数)的 false? 我这样做了,但不确定是否正确: 有什么建议/提示吗?

  • 我的代码怎么了???我正试图写一个递归方法来求一个数中出现的数。编写一个递归函数,对一个正整数num进行编码,从另一个整数中提取一个数字,不进行负计数。如果数字显示的次数正好是数字,则函数返回true,否则返回false。 示例:输入:122231位:2计数:3输出:真

  • 本文向大家介绍PHP判断一个变量是否为整数、正整数的方法示例,包括了PHP判断一个变量是否为整数、正整数的方法示例的使用技巧和注意事项,需要的朋友参考一下 在PHP中判断一个变量是否为整数 在写PHP代码的时候遇到这样一个小问题:如何判断一个变量是否为整数,于是在网上找到了两个方法来解决,在此做一个小小的记录。 方法1 这里用is_int()方法来判断传入的参数是否为整数形(int),而不是判断它

  • 判断一个数是否为素数 思路说明 这个问题有多种解法,以下的解法来自网络整理。供参考使用。 解决(Python) #! /usr/bin/env python #coding:utf-8 """ """ #方法一 import math def isPrime1(n): if n <= 1: return False for i in range(2, int(