HDU 6937 Yiding Number
#include<iostream>
using namespace std;
bool judge(int inp){
if(inp==1) return 1;//返回到1的时候结束。
bool b1=0,b2=0,b3=0,b4=0;
if((inp-13)%5==0 && (inp-13)>0) b1 = judge((inp-13)/5);// 递归,递归到原来的数的减13然后处于5,下同;
if((inp+13)%5==0 && (inp+13)>0) b2 = judge((inp+13)/5);
if((inp-5)%13==0 && (inp-5) >0) b3 = judge((inp-5)/13);
if((inp+5)%13==0 && (inp+5) >0) b3 = judge((inp+5)/13);
return b1||b2||b3||b4;//只要有一个条件能回到1就可以证明它是yiding number
}
int main(){
int n;
cin>>n;
while(n--){
int inp;
cin>>inp;
if(judge(inp)==1) cout<<"Yes"<<endl;//是就输出yes否则输出no
else cout<<"No"<<endl;
}
return 0;
}`
`