uva725 Division
2016-03-03 20:16
423 查看
题意:从小打到输出 abcde/fghij=n的表达式,其中a~j是0~9的全排列。
输入商n,输出满足的式子。
暴力枚举 fghij就好了。
输入商n,输出满足的式子。
暴力枚举 fghij就好了。
#include <fstream> #include <iostream> #include <string> #include <cstring> #include <complex> #include <math.h> #include <set> #include <vector> #include <map> #include <queue> #include <stdio.h> #include <stack> #include <algorithm> #include <list> #include <ctime> #include <ctime> #include<bits/stdc++.h> using namespace std; int v[20],n; bool check(int x) { memset(v,0,sizeof(v)); int t=x; while(t){ int a=t%10; if(v[a]) return false; else v[a]=1; t/=10; } int ans=n*x; if(ans>98765) return false; while(ans){ int a=ans%10; if(v[a]||(x<=9876&&a==0)) return false; else v[a]=1; ans/=10; } if(x<=98765) v[0]=1; int sum=0; for(int i=0;i<=9;i++) sum+=v[i]; return sum==10; } int main() { #ifdef yxj freopen("C:\\Users\\MrYxJ\\Desktop\\in.txt","r",stdin); freopen("C:\\Users\\MrYxJ\\Desktop\\out.txt","w",stdout); #endif // yxj int cnt=0; while(scanf("%d",&n)&&n){ int ok=0; if(cnt++) printf("\n"); for(int i=1234;i<50000;i++){ if(check(i)){ ok=1; if(i<=9876) printf("%05d / 0%04d = %d\n",i*n,i,n); else printf("%05d / %05d = %d\n",i*n,i,n); } } if(!ok) printf("There are no solutions for %d.\n",n); } }
相关文章推荐
- codeforces 633C. Spy Syndrome 2 trie + dp
- JAR包
- svn更新出现冲突的解决方法
- Handler机制总结
- bzoj1799 self 同类分布 数位Dp
- NLTK学习笔记——Classify模块(1)
- 利用IIS和花生壳在校园网IP下搭建简单网站超详细教程
- 经常使用ARM汇编指令
- linux网络编程之-----多播(组播)编程
- 重建二叉树
- Java虚拟机的相关解释
- fzu2087 统计树边 最小生成树应用
- git 仓库转移
- 字符串匹配算法 朴素算法 Rabin—Karp算法,KMP算法
- 00004笔试题
- 自定义三叉树
- Ajax
- BZOJ 4412/Usaco2016 Feb Circular Barn(构造)
- 37. Sudoku Solver
- question_015-JAVA之Map的遍历方式