题目:给你一个数字n,用0~9,10个数字组成两个五位数,使得他们的商为n,按顺序输出所有结果。
分析:暴力。直接枚举第二个数字,范围(1000,100000),然后判断即可。
(根据刘汝佳紫皮)
1 #include<bits/stdc++.h> 2 using namespace std; 3 int judge(int a,int b) 4 { 5 int used[11]; 6 memset(used,0,sizeof(used)); 7 if(b>100000) return 0; 8 used[0]=1; 9 while(a) 10 { 11 used[a%10]=1; 12 a/=10; 13 } 14 while(b) 15 { 16 used[b%10]=1; 17 b/=10; 18 } 19 int sum=0; 20 for(int i=0;i<10;i++) 21 sum+=used[i]; 22 return (sum==10); 23 } 24 int main() 25 { 26 int n; 27 while(cin>>n) 28 { 29 int i,flag; 30 flag=0; 31 for(i=1234;i<100000;i++) 32 { 33 if(judge(i,i*n)) 34 { 35 flag=1; 36 cout<<i*n<<"/"<<i<<"="<<n<<endl; 37 } 38 } 39 if(flag==0) 40 { 41 cout<<"no"<<endl; 42 } 43 } 44 return 0; 45 }