问题标题: 酷町堂:10085

0
0
已解决
杨文轩
杨文轩
新手光能
新手光能

题目链接: 酷町堂:10085

#include<iostream>
#include<cmath>
using namespace std;
    int n;
    string s;
    bool bs(string a){
        int ans=0;
        if(a.size()<=3){
            for(int i=0;i<a.size();i++){
                ans*=10;
                ans+=a[i]-'0';
            }
        }
        else{
            for(int i=a.size()-3;i<=a.size()-1;i++){
                ans*=10;
                ans+=a[i]-'0 ';
            }
        }
        if(ans%8==0){
            return true;
        }
        return false;
    }
        bool jhbs( string a){
            if(a.size()<=3){
                for(int i=0;i<a.size();i++){
                    for(int j=0;j<a.size();j++){
                        if(i==j){
                            continue;
                        }
                        char x=a[i],y=a[j];
                        a[i]=y;
                        a[j]=x;
                        if(bs(a)){
                            return true;
                        }
                        a[j]=y;
                        a[i]=x;
                    }
                }
            }
            else{
                for(int i=0;i<a.size();i++){
                    for(int j=a.size()-3;j<=a.size()-1;j++){
                        char x=a[i],y=a[j];
                        a[i]=y;
                        a[j]=x;
                        if(bs(a)){
                            return true;
                        }
                        a[j]=y;
                        a[i]=x;
                    }
                }
            }
        return true;
    }
int main(){
cin>>n;
while(n--){
    cin>>s;
    if(bs(s)||jhbs(s)){
        cout<<"Yes\n";
    }
    else{
        cout<<"No\n";
    }
}
    return 0;
}
 


0
我要回答