UVA.725 Division (暴力)

题意分析

找出abcdefghij分别是0-9(不得有重复),使得式子abcde/fghij = n。

如果分别枚举每个数字,就会有10^10,肯定爆炸,由于分数值已知,其实发现可以通过枚举分母,来计算出分子,然后再看看这些数字是否符合题意即可。

在枚举分母的时候,也可以根据条件过滤掉很多数字,我这里没有优化,直接暴力扫描1234-99999。

#include <iostream>
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <sstream>
#include <set>
#include <map>
#include <queue>
#include <stack>
#include <cmath>
#define nmax 200
#define MEM(x) memset(x,0,sizeof(x))
using namespace std;
int digit[10];
int n;
int getdigit(int num)
{
int cnt = 0;
while(num){
cnt++;
num/=10;
}
return cnt;
}
bool caldigit(int num)
{
if(getdigit(num)<=4) digit[0]++;
else if(getdigit(num) >=6) return false;
while(num){
int t = num%10;
digit[t] ++;
num/=10;
}
for(int i = 0; i<=9; ++i){
if(digit[i] == 0) return false;
else if(digit[i] == 2) return false;
}
return true;
}
bool caldigiti(int num)
{
memset(digit,0,sizeof(digit));
if(getdigit(num)<=4) digit[0]++;
else if(getdigit(num) >=6) return false;
while(num){
int t = num%10;
digit[t] ++;
num/=10;
}
int cnt = 0;
for(int i = 0; i<=9;++i){
if(digit[i] == 2) return false;
else if(digit[i] == 1) cnt++;
}
if(cnt == 5) return true;
else return false;
}
void output(int a, int b)
{
int len1 = getdigit(a),len2 = getdigit(b);
for(int i = 5-len1; i>0 ; --i) printf("0");
printf("%d / ",a);
for(int i = 5-len2;i>0 ;--i) printf("0");
printf("%d = %d\n",b,n);
}
int main()
{
//freopen("in.txt","r",stdin);
bool isfirst = true;
while(scanf("%d",&n) && n){
if(!isfirst) printf("\n");
int sta = 1234;bool isok = false;
for(int i = sta;i<=99999;++i){
if(caldigiti(i)){
int ans = n*i;
if(caldigit(ans)){
output(ans,i);
isok = true;
}
}
}
if(!isok) printf("There are no solutions for %d.\n",n);
if(isfirst) isfirst = false; }
return 0;
}

UVA.725 Division (暴力)的更多相关文章

  1. uva 725 DIVISION (暴力枚举)

    我的56MS #include <cstdio> #include <iostream> #include <string> #include <cstrin ...

  2. 暴力枚举 UVA 725 Division

    题目传送门 /* 暴力:对于每一个数都判断,是否数字全都使用过一遍 */ #include <cstdio> #include <iostream> #include < ...

  3. uva 725 Division(除法)暴力法!

    uva 725  Division(除法) A - 暴力求解 Time Limit:3000MS     Memory Limit:0KB     64bit IO Format:%lld & ...

  4. uva 725 Division(暴力模拟)

    Division 紫书入门级别的暴力,可我还是写了好长时间 = = [题目链接]uva 725 [题目类型]化简暴力 &题解: 首先要看懂题意,他的意思也就是0~9都只出现一遍,在这2个5位数 ...

  5. UVA 725 division【暴力枚举】

    [题意]:输入正整数n,用0~9这10个数字不重复组成两个五位数abcde和fghij,使得abcde/fghij的商为n,按顺序输出所有结果.如果没有找到则输出“There are no solut ...

  6. UVa 725 Division (枚举)

    题意 : 输入正整数n,按从小到大的顺序输出所有形如abcde/fghij = n的表达式,其中a-j恰好为数字0-9的一个排列(可以有前导0),2≤n≤79. 分析 : 最暴力的方法莫过于采用数组存 ...

  7. Uva 725 Division

    0.不要傻傻的用递归去构造出一个五位数来,直接for循环最小到最大就好,可以稍微剪枝一丢丢,因为最小的数是01234 从1234开始,因为倍数n最小为2 而分子是一个最多五位数,所以分母应该小于五万. ...

  8. uva 725 division(水题)——yhx

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAABVMAAAOHCAIAAAClwESxAAAgAElEQVR4nOydybGturJFcQEPfgQu4A

  9. UVA 725 – Division

    Description   Write a program that finds and displays all pairs of 5-digit numbers that between them ...

随机推荐

  1. c和c++的强制类型转换

    我们知道c语言中的类型转换只有一种, TYPE b = (TYPE)a; 而在c++中按照不同作用的转换类型将其细分为三个显示类型转换符号static_cast, const_cast, reinte ...

  2. 180710-MySql插入唯一键冲突的三种可选方式

    MySql插入时唯一键冲突的几种处理方式 MySql插入一条记录,结果提示主键冲突,怎么办? 批量插入数据时,发现插入的这批数据中,有某些记录存在唯一键冲突,一个一个跳出来就比较麻烦了,有什么好的办法 ...

  3. WEB页面常用基本控件测试用例

    一.树控件的测试外观操作 1)项目中的所有树是否风格一致 2)树结构的默认状态是怎样的.比如默认树是否是展开,是展开几级?  是否有默认的焦点? 默认值是什么?展开的节点图标和颜色? 2.执行操作 1 ...

  4. JS变量定义时连续赋值的坑!

    在定义变量时,可以将值相同的变量采用连续赋值的方式,如下代码: var a = b = c = ''; 其实这里面有一个很大很大的坑,以代码说明问题: <script language=&quo ...

  5. python终极篇 ---django 模板系统

                                                模板系统                                                . MV ...

  6. Python3 下安装python-votesmart

    在python2下安装python-smart还比较容易,而python3中由于很多函数库的变化直接使用python setup.py install 命令来安装的话会导致错误,而导致错误的原因就是p ...

  7. 【转】Backbone.js学习笔记(二)细说MVC

    文章转自: http://segmentfault.com/a/1190000002666658 对于初学backbone.js的同学可以先参考我这篇文章:Backbone.js学习笔记(一) Bac ...

  8. C++标准库算法

    一.只读算法 1. find() 2. count() 3. accumulate 4. equal 二.写入算法 1. fill 2. fill_n 3. copy 4. replace 5. re ...

  9. 如果jsp表单元素的值为空,如何避免null出现在页面上?

    可以写一个简单的函数对空值进行处理,判断值是否为空,如果是空就返回空字符串.实例代码如下: <%! String blanknull(String s) { return (s == null) ...

  10. 转 Js 跨域CORS报错 Response for preflight has invalid HTTP status code 405

    转自:http://www.cnblogs.com/SilenceTom/p/6697484.html 调用接口遇到Response for preflight has invalid HTTP st ...