#include<iostream> #include<set> #include<numeric> #include<time.h> #include<math.h> using namespace std; int main() { double start = clock(),end(0); int b[2]={1,1}; for(int i=10; i!=99; i++) { for(int j=10; j!=99; j++) { double r = (double)i/j; if( (r)>1.000000 || i==j || i%10==0 || j%10==0) continue; int a[4]={0}; //分别将分子分母2位数放入数组 a[0]=i/10; a[1]=i%10; a[2]=j/10; a[3]=j%10; //比较情况1 if(a[0]==a[2]) { if (r == (double)a[1]/a[3]) { b[0] *= a[1]; b[1] *= a[3]; cout << i<<","<<j<<endl; } } //比较情况2 if(a[0]==a[3]) { if (r == (double)a[1]/a[2]) { b[0] *= a[1]; b[1] *= a[2]; cout << i<<","<<j<<endl; } } //比较情况3 if(a[1]==a[2]) { if (r == (double)a[0]/a[3]) { b[0] *= a[0]; b[1] *= a[3]; cout << i<<","<<j<<endl; } } //比较情况4 if(a[1]==a[3]) { if (r == (double)a[0]/a[2]) { b[0] *= a[0]; b[1] *= a[2]; cout << i<<","<<j<<endl; } } } } cout << b[0]<<","<<b[1]<<endl; end = clock(); double runtime = (end - start)/1000; cout.setf(ios::fixed); cout << endl << "run time is " << runtime << endl; system("PAUSE"); return 0; } for(int b=1; b<11; b++) for(int a=1; a<11; a++) for(int c=a+1; c<11; c++) if((10*a+b)*c == (10*b+c)*a) cout << a*10+b<<"/"<<b*10+c<<endl;