测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

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; }
上一题 下一题