把输入数字每次从9-2除,能整除则记录该数字,最后从小到大输出。

应该算是水题,不过窝第一次写高精度除法,虽然1A,不过中间改了好多次。

/******************************************
Problem: 2325 User:
Memory: 684K Time: 110MS
Language: G++ Result: Accepted
******************************************/
#include <iostream>
#include <cstdio>
#include <cstring> using namespace std; char numStr[1005];
int num[1005];
int num1[1005];
int ans[1005];
int len;
int cnt;
int in;//因为数字位数会越除越小,用in来记录少了多少位 bool div(int n)
{
int i;
int temp = (num[in] < n);
for (i = in; i < len; ++i) num1[i] = num[i];
for (i = in; i < len; ++i) {
num1[i + 1] += (num1[i] % n) * 10;
num1[i] /= n;
}
if (num1[i]) {
num1[i] = 0;
return false;
} else {
in += temp;
for (i = in; i < len; ++i) num[i] = num1[i];
return true;
}
} int main()
{
int i;
while (scanf("%s", numStr) != EOF) {
len = strlen(numStr);
if (len == 2 && numStr[0] == '-' && numStr[1] == '1')
break;
if (len == 1) {
printf("%c%s\n", '1', numStr);
continue;
}
in = cnt = 0;
memset(num1, 0, sizeof num1);
memset(num, 0, sizeof num);
for (i = 0; i < len; ++i) {
num[i] = numStr[i] - '0';
}
while (!(len - in == 1 && num[in] == 1)) {
//printf("in:%d\n", in);
for (i = 9; i >= 2; --i) {
if (div(i)) {
ans[cnt++] = i;
break;
}
}
//printf("i=%d\n", i);
if (i == 1) break;
}
if (i == 1) printf("There is no such number.");
else
for (i = cnt - 1; i >= 0; --i)
printf("%d", ans[i]);
printf("\n");
}
return 0;
}

  

poj 2325 Persistent Numbers (贪心+高精度)的更多相关文章

  1. POJ 2325 Persistent Numbers#贪心+高精度除法

    (- ̄▽ ̄)-* 这道题涉及高精度除法,模板如下: ]; ];//存储进行高精度除法的数据 bool bignum_div(int x) { ,num=; ;s[i];i++) { num=num*+ ...

  2. poj 2325 Persistent Numbers

    简单的贪心和高精度运算,主要还是要读懂题. #include"iostream" #include"stdio.h" #include"string& ...

  3. POJ - 3652 Persistent Bits

    “模拟”类型,题型容易,使用bitset库对二进制逐位操作,初始化.十进制转二进制(unsigned int).位操作. POJ - 3652 Persistent Bits Time Limit:  ...

  4. POJ 3190 Stall Reservations贪心

    POJ 3190 Stall Reservations贪心 Description Oh those picky N (1 <= N <= 50,000) cows! They are s ...

  5. POJ 2392 Space Elevator(贪心+多重背包)

    POJ 2392 Space Elevator(贪心+多重背包) http://poj.org/problem?id=2392 题意: 题意:给定n种积木.每种积木都有一个高度h[i],一个数量num ...

  6. Poj 2247 Humble Numbers(求只能被2,3,5, 7 整除的数)

    一.题目大意 本题要求写出前5482个仅能被2,3,5, 7 整除的数. 二.题解 这道题从本质上和Poj 1338 Ugly Numbers(数学推导)是一样的原理,只需要在原来的基础上加上7的运算 ...

  7. POJ - 2109 Power of Cryptography(高精度log+二分)

    Current work in cryptography involves (among other things) large prime numbers and computing powers ...

  8. POJ 1142 Smith Numbers(史密斯数)

    Description 题目描述 While skimming his phone directory in 1982, Albert Wilansky, a mathematician of Leh ...

  9. poj 3641 Pseudoprime numbers

    题目连接 http://poj.org/problem?id=3641 Pseudoprime numbers Description Fermat's theorem states that for ...

随机推荐

  1. LocalContainerEntityManagerFactoryBean

    http://doc.okbase.net/liuyitian/archive/109276.html

  2. C# and JSON

    JQuery Parse JSON var obj = $.parseJSON(data); C# creates JSON string: public static class JSONHelpe ...

  3. js 拼接 三列做为一行

    function Ajax_GetCourseAndResource(data) { $(".ol-course-list").empty(); var html = " ...

  4. 给JavaScript初学者的24条最佳实践(转:http://www.cnblogs.com/yanhaijing/p/3465237.html)

    作为“30 HTML和CSS最佳实践”的后续,本周,我们将回顾JavaScript的知识 !如果你看完了下面的内容,请务必让我们知道你掌握的小技巧! 1.使用 === 代替 == JavaScript ...

  5. c++ 联合体

    联合体分配的内存大小是成员变量中最大变量的大小 联合体的成员变量共享内存 小段模式(X86就是) 低位数据存在低地址单元 大端模式                     高位字节存在低地址单元

  6. 独立两套DJANGO+CELERY配置(生产+测试)时要注意的一些细节

    1,生产的NGINX环境,要指定自己的目录,而不是PROJ默认的. upstream ism_host { server ; } server { listen ; server_name local ...

  7. PHP奇趣笔试试题一则

    $a = 3; $b = 5; if($a = 5 || $b = 7){ $a++; $b++; } echo $a, ' ', $b; 输出结果为: A.6 8 B.6 6 C.2 6 D.1 6 ...

  8. 【HDOJ】1058 Humble Numbers

    简单题,注意打表,以及输出格式.这里使用了可变参数. #include <stdio.h> #define MAXNUM 5845 #define ANS 2000000000 int b ...

  9. hihocoder #1289 : 403 Forbidden (2016 微软编程笔试第二题)

    #1289 : 403 Forbidden 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 Little Hi runs a web server. Sometimes ...

  10. bzoj1176 2683

    我的第一道cdq分治题清明做了一下cdq分治的几道题,感觉这个东西实在是太厉害了离线大法好!关于几个经典的非数据结构做法具体可以看xhr神犇2013年的论文应用cdq分治的前提条件是不强制在线,修改操 ...