计蒜客(一)

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

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

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在C语言中,五种基本数据类型存储空间长度的排列顺序是: A)char B)char=int<=float C)ch...
    夏天再来阅读 8,718评论 0 2
  • "use strict";function _classCallCheck(e,t){if(!(e instanc...
    久些阅读 6,148评论 0 2
  • 【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔...
    开心的锣鼓阅读 8,567评论 0 9
  • 备注:本文参与#漫步青春#征文活动,作者:吴俊奇,本人承诺,文章内容为原创,且未在其他平台发布 ...
    纤尘残音阅读 1,319评论 0 1
  • 文/三月鱼 1. 前几天驾考科目二,我挂了。 第一把我挂在曲线上,第二把,我挂在直角转弯上。 先前模拟考试,我是过...
    653e0adfb5bf阅读 3,430评论 0 0