判断元素是否存在

      • C语言代码
      • C++ 代码
      • Java代码
      • Python代码


💐The Begin💐点点关注,收藏不迷路💐

有一个集合M是这样生成的: (1) 已知 k 是集合 M 的元素; (2) 如果 y 是 M 的元素,那么, 2y+1 和 3y+1 都是 M 的元素; (3) 除了上述二种情况外,没有别的数能够成为 M 的一个元素。

问题:任意给定 k 和 x,请判断 x 是否是 M 的元素。这里的 k是无符号整数,x 不大于 100000, 如果是,则输出YES,否则,输出 NO

输入

输入整数 k 和 x, 逗号间隔。

输出

如果是,则输出 YES,否则,输出NO

样例输入

0,22

样例输出

YES

C语言代码

#include <stdio.h>

// 判断是否存在的函数
int isHave(int k, int x) {
    if (k > x) return 0; // 如果k大于x,不存在,返回0
    if (k == x) return 1; // 如果k等于x,存在,返回1
    return isHave(2 * k + 1, x) || isHave(3 * k + 1, x); // 递归调用判断
}

int main() {
    int k, x;
    scanf("%d", &k); // 输入k
    getchar(); // 接收逗号
    scanf("%d", &x); // 输入x
    printf("%s\n", isHave(k, x)? "YES" : "NO"); // 根据结果输出相应字符串
    return 0;
}

C++ 代码

#include <iostream>
using namespace std;

// 判断是否存在的函数
bool isHave(int k, int x) {
    if (k > x) return false; // 如果k大于x,不存在,返回false
    if (k == x) return true; // 如果k等于x,存在,返回true
    return isHave(2 * k + 1, x) || isHave(3 * k + 1, x); // 递归调用判断
}

int main() {
    int k, x;
    cin >> k; // 输入k
    getchar(); // 接收逗号
    cin >> x; // 输入x
    cout << (isHave(k, x)? "YES" : "NO") << endl; // 根据结果输出相应字符串
    return 0;
}

Java代码

import java.util.Scanner;

public class Main {
    // 判断是否存在的函数
    static boolean isHave(int k, int x) {
        if (k > x) return false; // 如果k大于x,不存在,返回false
        if (k == x) return true; // 如果k等于x,存在,返回true
        return isHave(2 * k + 1, x) || isHave(3 * k + 1, x); // 递归调用判断
    }

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int k = scanner.nextInt(); // 输入k
        scanner.nextLine(); // 接收逗号(模拟接收换行符等情况消耗掉多余输入)
        int x = scanner.nextInt(); // 输入x
        System.out.println(isHave(k, x)? "YES" : "NO"); // 根据结果输出相应字符串
    }
}

Python代码

#判断是否存在的函数
def isHave(k, x):
    if k > x:
        return False # 如果k大于x,不存在,返回False
    if k == x:
        return True # 如果k等于x,存在,返回True
    return isHave(2 * k + 1, x) or isHave(3 * k + 1, x) # 递归调用判断

k = int(input()) # 输入k
input() # 接收逗号(相当于消耗掉逗号这个输入)
x = int(input()) # 输入x
print("YES" if isHave(k, x) else "NO") # 根据结果输出相应字符串

在这里插入图片描述


💐The End💐点点关注,收藏不迷路💐
Logo

科技之力与好奇之心,共建有温度的智能世界

更多推荐