美文网首页
计蒜客(一)

计蒜客(一)

作者: 董玉恒_算法训练营 | 来源:发表于2019-04-08 22:26 被阅读0次

原题地址:判断元素是否存在 - 题库 - 计蒜客

蒜头君有一个集合 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"。

截图

AC源码:

#include<iostream>

#include<cstdio>

using namespace std;

int n;//设置全局变量n,用于记录函数中的结果

void set(int k,int x){

    if(x==k){

    n=1;

    }

    else{

        if((x-1)%3==0)

        set(k,(x-1)/3);

        if((x-1)%2==0)

        set(k,(x-1)/2);

    else{

        if(n!=1)//如果之前n没有为 1的话,将n设置为0

        n=0;

        }

    }

}

int main(){

    int k,x;

    while(scanf("%d,%d",&k,&x)!=EOF){

        n=0;

        set(k,x);

        if(n==1)

            printf("YES\n");

        else

            printf("NO\n");

    }

    return 0;

}

相关文章

网友评论

      本文标题:计蒜客(一)

      本文链接:https://www.haomeiwen.com/subject/repmiqtx.html