虽然是暴力,但要注意相除产生的小数的处理,浮点数的比较还是不能直接用==
#include <iostream> #include <algorithm> #include <cstring> #include <cstdio> using namespace std; int main() { double a,b,c,d,ac,bd; int ans=0; for(a=1;a<=9;++a) for(b=1;b<=9;++b) for(c=1;c<=9;++c) for(d=1;d<=9;++d) { if(a!=b&&c!=d) { ac=a*10+c; bd=b*10+d; if((((a/b)*(c/d)-ac/bd)<0.000001)&&(((a/b)*(c/d)-ac/bd)>-0.000001)) { cout<<a<<" "<<b<<"+"<<c<<" "<<d<<"="<<ac<<" "<<bd<<endl; ans++; } } } printf("%d\n",ans); return 0; }