41:判斷元素是否存在

自為風月馬前卒發表於2017-03-13

41:判斷元素是否存在

總時間限制: 
1000ms
 
記憶體限制: 
65536kB
描述

有一個集合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
來源
元培-From Whf
 1 #include<iostream>
 2 #include<cstdio>
 3 using namespace std;
 4 int a[10000001];
 5 void f(int n)
 6 {
 7     if(n<=100000)
 8     {
 9         a[n]=1;
10         f(2*n+1);
11         f(3*n+1);
12     }
13     else return;
14 }
15 int main()
16 {
17     int k,x;
18     //cin>>k>>x;
19     scanf("%d,%d",&k,&x);
20     f(k);
21     if(a[x]==1)
22     cout<<"YES";
23     else
24     {
25         cout<<"NO";
26     }
27     return 0;
28 }

 

相關文章