UVA725-Division【枚举】

  1. 链接

    Division

  2. 思路

    因为分子不可能是四位数,所以从12345枚举分子一直到98765,然后判断分母是否符合条件即可。

  3. 代码

    #include
    using namespace std;
    
    typedef long long ll;
    const int maxn = 2e5+10;
    const int mod = 1e9+7;
    
    int a[maxn];
    
    int main(void){
    	int n;
    	int num = 0;
    	while(cin>>n&&n){
    		if(num!=0) cout<<endl;
    		num++; 
    		bool f = 1;
    		for(int i = 12345; i <= 98765; i++){
    			for(int j = 0; j < 10; j++) a[j] = 0;
    			if(i%n==0){
    				bool flag = 1;
    				int tmp = i/n;
    				if(tmp>999&&tmp<10000)	a[0]++;
    				while(tmp){
    					a[tmp%10]++;
    					tmp /= 10;
    				}
    				int m = i;
    				while(m){
    					a[m%10]++;
    					m /= 10; 
    				}
    				for(int j = 0; j < 10; j++){
    					if(a[j]==1) continue;
    					else flag = 0;
    				}
    				if(flag){
    					f = 0;
    					printf("%05d / %05d = %d\n",i,i/n,n);
    				}
    			}
    		}
    		if(f){
    			printf("There are no solutions for %d.\n",n);
    		}
    	} 
    	return 0;
    }
    

你可能感兴趣的:(枚举)