输入正整数n,按从小到大的顺序输出所有形如abcde/fghij=n的表达式,其中a~j恰好为数字0~9的换一个排列,2<=n<=79
样例输入:
62
样例输出:
79546/01283=62
94736/01528=62
#include <iostream> using namespace std; int main() { int n; while(1) { cout<<"input n: "; cin>>n; if(n>=2&&n<=79) { break; } } int a,b,c,d,e,f,g,h,i,j; for(a=0;a<=9;a++) { for(b=0;b<=9;b++) { for(c=0;c<=9;c++) { for(d=0;d<=9;d++) { for(e=0;e<=9;e++) { for(f=0;f<=9;f++) { for(g=0;g<=9;g++) { for(h=0;h<=9;h++) { for(i=0;i<=9;i++) { for(j=1;j<=9;j++) { long x,y; x=(((a*10+b)*10+c)*10+d)*10+e; y=(((f*10+g)*10+h)*10+i)*10+j; if(x%y==0&&x/y==n) { int p[10]={0,1,2,3,4,5,6,7,8,9}; p[a]=-1; p[b]=-1; p[c]=-1; p[d]=-1; p[e]=-1; p[f]=-1; p[g]=-1; p[h]=-1; p[i]=-1; p[j]=-1; int m; for(m=0;m<=9;m++) { if(p[m]!=-1) { break; } } if(m==10) { cout<<a<<b<<c<<d<<e<<"/"<<f<<g<<h<<i<<j<<"="<<n<<endl; } } } } } } } } } } } } }