本文主要是介绍简单除法(简单枚举优化),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
//输入正整数n按从小到大的顺序输出所有形如abcde/fghij=n的表达式其中a到j正好是数字0到9的一个排列
//输入62输出
//79546/01283=62
//94739/01528=62
//虽然是暴力求解,但是做了一些优化。
#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;}
这篇关于简单除法(简单枚举优化)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!