简单除法(简单枚举优化)
1 |
//输入正整数n按从小到大的顺序输出所有形如abcde/fghij=n的表达式其中a到j正好是数字0到9的一个排列 |
1 |
//输入62输出 |
1 |
//79546/01283=62 |
1 |
//94739/01528=62 |
1 |
//虽然是暴力求解,但是做了一些优化。 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
#include<iostream> #include<algorithm> using namespace std; void panduan(int s,int k) { int n,m;bool l=1; n=s;m=k; int i,sn=0,a[20],j; for(i=0;n!=0;i++) { a[i]=n%10; n=n/10; } for(;m!=0;i++) { a[i]=m%10; m=m/10; } i--; sort(a,a+i); if(i==8) {a[++i]=0;sort(a,a+10);} else if(i==7) {l=0;} // else for(j=0;j<i;j++) {if(a[j]==a[j+1]) {l=0;break;}} if(l==1) cout<<s<<'/'<<k<<endl; } int main() { int n,f,s,m,k,i; cin>>n; s=10000/n; f=100000/n; // i=1203;m=74586; // panduan(i,m); for(i=s;i<=f;i++) { m=i*62; panduan(i,m); } return 0;} |
This article is automatically posted by WP-AutoPost : WordPress自动采集发布插件
安装WP-AutoPost,WP-AutoPost