问题标题: 酷町堂:10088

0
0
已解决
曾心
曾心
高级守护
高级守护

题目链接: 酷町堂:10088

#include <iostream>

#include <algorithm>

#include <cstdio>

#include <cmath>

#include <iomanip>

#include <stdio.h>

#include <string>

#include <cstring>

using namespace std;

int n;

string s;

bool f(){

    int sum=0;

    for(int i=0;i<=s.length()-1;i++){

        sum+=s[i]-'0';

    }

    if(sum%3==0){

        return true;

    }

    return false;

}

bool f8(){

    int sum=0;

    int t=s.size()-3;

    for(int i=max(t,0);i<s.length();i++){

        sum=sum*10+s[i]-'0';

    }

    return sum%8==0;

}

bool f88(){

    int t=s.size()-3;

    for(int i=max(t,0);i<s.length();i++){

        for(int j=0;j<s.length();j++){

            swap(s[i],s[j]);

            if(f8()){

                return true;

            }

            swap(s[i],s[j]);

        }

    }

return false;

}

int main(){

    cin>>n;

    for(int i=1;i<=n;i++){

        cin>>s;

//cout<<f()<<" "<<f8()<<" "<<f88()<<endl;

        if(f()&&f8()||f88()){

            cout<<"Yes"<<endl;

        }else{

            cout<<"No"<<endl;

        }

    }

    return 0;

}

样例最后一个数不对;


0
我要回答