CodeForces-Magic Numbers

题目:Magic Numbers
分析:判断一个数是不是“魔数”,直接递归判断(刚开始还以为会超时)
#include <iostream>
#include<cstring>
#include<vector>
#include<stdio.h>
#include<queue>
#include<math.h>
#include<stack>
#include<algorithm>
#include<map>
#include<set>
#include<iostream>
using namespace std;
#define MAX 100001
#define MM  1020
typedef long long ll;
int n,m,k;
int f;
string c[3] = {
    
    "1","14","144"};
void dfs(string s,int len,int i)
{
    
    
    if(i == len){
    
    
        f = 1;
        return;
    }
    if(s.substr(i,1) == c[0])
        dfs(s,len,i+1);
     if(s.substr(i,2) == c[1])
        dfs(s,len,i+2);
     if(s.substr(i,3) == c[2])
        dfs(s,len,i+3);
}
int main()
{
    
    
    string s;cin>>s;
    int len = s.size();
    dfs(s,len,0);
    if(!f)
        cout<<"NO";
    else
        cout<<"YES";
    return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_43567222/article/details/114481101