7-1 除法(Division)

暴力求解法

題目大概是:給出n,輸出所有滿足abcde/fghij=n的等式。

直接循環枚舉所有可能情況,然後判斷有沒有重複的數字,如果沒有,輸出。

由於忘記判斷abcde是否有重複被卡了一次~~

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
int n;
int wow,ans;
int k[10]={0,1,2,3,4,5,6,7,8,9};
int a,b,c,d,e,a2,b2,c2,d2,e2; 
bool l[10];
bool bj(){
    if(a==b||a==c||a==d||a==e||b==c||b==d||b==e||c==d||c==e||d==e) return 0;
    if(a2==b2||a2==c2||a2==d2||a2==e2||b2==c2||b2==d2||b2==e2||c2==d2||c2==e2||d2==e2) return 0;
    l[a]=1;
    l[b]=1;
    l[c]=1;
    l[d]=1;
    l[e]=1;
    if(l[a2]==0 && l[b2]==0 && l[c2]==0 && l[d2]==0 && l[e2]==0 ){
        memset(l,0,sizeof(l));
        return 1;
    }
    else{
        memset(l,0,sizeof(l));
        return 0;
    }   
}
int main(){
    cin>>n;
    for(a=0;a<10;a++)
        for(b=0;b<10;b++)
            for(c=0;c<10;c++)
                for(d=0;d<10;d++)
                    for(e=0;e<10;e++){
                        wow=a*10000+b*1000+c*100+d*10+e;
                        if(wow%n==0){
                            wow=wow/n;
                            a2=wow/10000%10;
                            b2=wow/1000%10;
                            c2=wow/100%10;
                            d2=wow/10%10;
                            e2=wow/1%10;
                            if(bj()==1) {
                                ans++;
                                cout<<a<<b<<c<<d<<e<<"/"<<a2<<b2<<c2<<d2<<e2<<"="<<n<<endl;
                            }
                        }
                    }
    cout<<ans<<endl;
}
發佈了35 篇原創文章 · 獲贊 52 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章