栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

判断元素是否存在(递归)(计蒜客)(java)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

判断元素是否存在(递归)(计蒜客)(java)

1.题目原文

蒜头君有一个集合 M 是这样生成的:

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

问题:给定 k 和 x(0≤k≤x≤10^5),请判断 x 是否是 M 的元素。

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

输入格式

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

输出格式

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

输出时每行末尾的多余空格,不影响答案正确性

样例输入

0,22

样例输出

YES
2.解题思路

因为k<=X,因此可以使用递归查找,如果k==x就返回true,否则就查找x和2k+1是否匹配,是就返回true否则查找X和3*K死否匹配,如果匹配就返回true,最后如果前面的都不匹配就返回false,调用函数时如果返回值是true就输出YES否则输出NO。

3.解题代码

import java.math.BigInteger;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String ssString = scanner.next();
        BigInteger cBigInteger = new BigInteger(
                ssString.substring(0, ssString.indexOf(",")));//拿到第一个数
        BigInteger bbBigInteger = new BigInteger(
                ssString.substring(ssString.indexOf(",") + 1));//拿到第二个数
        int k = cBigInteger.intValue();//赋值(虽然说直接使用也可以
                                        //不过这样做更容易看懂
        int x = bbBigInteger.intValue();//赋值
        if (search(x, k)) { //调用函数
            System.out.println("YES");
        } else {
            System.out.println("NO");
        }
    }

    public static boolean search(int x, int k) {
        if (k == x) {  //如果x==k就跳出函数返回一个true
            return true;
        } else {
            if (x > k) { //当x>k的时候进行
                if (search(x, 2 * k + 1))//递归查找直到x                     return true;        //找到就返回true
                else if (search(x, 3 * k + 1)) {//同上
                    return true;
                } else {
                    return false;//上面两个条件都不满足时返回false
                }
            } else {
                return false;//当x             }
        }
    }
}

原创不易,三连支持一下吧

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/704889.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号