UVa - 725 - Division(暴力枚举)

来源:互联网 发布:mac virtualbox 拖拽 编辑:程序博客网 时间:2024/05/31 11:03

#include<iostream>#include<string>using namespace std;int num1[10];int num2[10];// 12345 012345bool check(int a,int b){if(a<10000) num1[0] = 0;int i=4;while(a){num1[i--] = a%10;a /= 10;}if(b<10000) num2[0] = 0;i = 4;while(b){num2[i--] = b%10;b /= 10;}//是否数字a的每一位都不相同 for(i=0 ;i<5 ;i++){for(int j=0 ;j<5 ;j++){if(i!=j&&num1[i]==num1[j])return false;}}//是否数字b的每一位都不相同 for(i=0 ;i<5 ;i++){for(int j=0 ;j<5 ;j++){if(i!=j&&num2[i]==num2[j])return false;}}//是否a和b的每一位互不相同 for(i=0 ;i<5 ;i++){for(int j=0 ;j<5 ;j++){if(num1[i]==num2[j])return false;}}return true;}int n;int num;int main(){//freopen("input.txt","r",stdin);int count = 0;while(cin>>n){if(n==0)break; int flag = 0;if(count) puts("");//枚举1234~98765之间的数字即可 for(int i=1234 ;i<=98765 ;i++){//i*n是a(大数) i是b(小数) if(i*n<=98765&&check(i,i*n)){printf("%05d / %05d = %d\n",i*n,i,n);flag = 1;count++;}}if(!flag){printf("There are no solutions for %d.\n",n);count++;}}return 0;}


0 0
原创粉丝点击