枚举及优化(一)-第2题     火柴棒等式 查看测评数据信息

#include<bits/stdc++.h>
using namespace std;
int a[100005],s=0,n;
int f(int x){
    int num;
    if(x/100==0)num=2;
    else if(x/1000==0)num=3;
    else if(x/10000==0)num=4;
    for(int i=0;i<num;i++){
        int flag=0;
        for(int j=0;j<n;j++){
            if(x%10==a[j]) {
                flag=1;
                break;
            }
        }
        x/=10;
        if(flag==0){
        	return 0;
        }
    }
    return 1;
}
int main(){
    cin>>n;
    for(int i=0;i<n;i++){
        cin>>a[i];
    }
    for(int a=111;a<999;a++){
        for(int b=11;b<99;b++) {
            if(!f(a)||!f(b)||a*b>9999||a*(b/10)>999||a*(b%10)>999){
            	continue;
            }
            else{
                if(f(a*b)&&f(a*(b/10))&&f(a*(b%10))){
                    s++;                    
                }
            }
        }
    }
    cout<<s;
    return 0;
}
上一篇:【网络安全 | 甲方安全建设】分布式系统、Redis分布式锁及Redisson看门狗机制


下一篇:施工企业为什么要用工程项目管理软件?工程项目管理软件的用处是什么?