A41107. 判断元素是否存在
填空题
较易
知识点
题目描述
判断元素是否存在
题目描述
有一个集合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
参考答案
#include<bits/stdc++.h>
using namespace std;
int fun(int n,int m)
{
if(n==m)
return 1;
if(n>m||n>100000)
return 0;
return fun(2*n+1,m)||fun(3*n+1,m);
}
int main()
{
int n,m;
scanf("%d,%d",&n,&m);
if(fun(n,m))
cout<<"YES";
else
cout<<"NO";
return 0;
}
上一题
下一题