枚举法Uva725
来源:互联网 发布:大数据都包括什么 编辑:程序博客网 时间:2024/06/07 10:25
//输出格式中两个输出之间有空格的要求是for i 记录次数,if(i) 打印空格
//枚举法注意枚举量的处理需要预处理,枚举法一般是solve方法设计
//Uva725
#include<iostream>
#include<cstdio>
#include<set>
using namespace std;
int main(){
int a;
for(int num=0;;num++){
cin>>a;
if(!a)break;
if(num)cout<<endl;
int jud=0;
set<int> st;//set判重
set<int> st2=st;//恢复到没有insert的下一个阶
for(int i=0;i<10;i++){
st=st2;
st.insert(i);
set<int> st3=st;
for(int j=0;j<10;j++){
st=st3;
if(st.count(j))continue;
st.insert(j);
set<int> st4=st;
for(int k=0;k<10;k++){
st=st4;
if(st.count(k))continue;
st.insert(k);
set<int> st5=st;
for(int x=0;x<10;x++){
st=st5;
if(st.count(x))continue;
st.insert(x);
set<int> st1=st;
for(int y=0;y<10;y++){
st=st1;
if(st.count(y))continue;
st.insert(y);
int s=i*10000+j*1000+k*100+x*10+y;
int div=s*a;
int div1=div;
if(div>=100000)continue;
if(st.count(div%10))continue;
int b=div%10;st.insert(b);div/=10;
if(st.count(div%10))continue;
int c=div%10;st.insert(c);div/=10;
if(st.count(div%10))continue;
int d=div%10;st.insert(d);div/=10;
if(st.count(div%10))continue;
int e=div%10;st.insert(e);div/=10;
if(st.count(div%10))continue;
printf("%d / %05d = %d\n",div1,s,a);
jud=1;
}
}
}
}
}
if(!jud)printf("There are no solutions for %d.\n",a);
}
return 0;
}
- 枚举法Uva725
- UVA725 Division【枚举】
- 简单枚举 uva725
- UVA725 Division【暴力枚举】
- UVa725
- UVA725
- 简单枚举(UVA725、UVA11057、UVA10976)
- 例题7-1 UVa725 Division(枚举)
- Uva725 Division【dfs枚举】【例题7-1】
- 简单枚举UVa725-division (abcde / fghij = n)
- uva725-Division
- UVa725 Division
- UVa725 - Division
- uva725 Division
- Division,Uva725
- UVA725-Division
- uva725 - Division
- uva725 Division
- 第五周项目2——建立链栈算法库
- Unity嵌入uLua
- 精华帖——八人过河的程序实现
- WSDL文件的深入理解
- 征集意见 -- 蓝缘资金奖励政策
- 枚举法Uva725
- 【Linux】把web项目部署到Linux服务器上
- 安卓开发中遇到的奇奇怪怪的问题
- 46.[Python]使用pyolite方便管理gitolite
- Pyrhon集合与词典常用的方法
- springmvc请求时间参数报错
- 常见排序算法(一)(冒泡排序、插入排序)
- <Android 基础(二十三)> Android Studio快捷键
- 【PowerDesigner】Mysql设计工具 16.5破解