poj2325
679 -> 378 -> 168 -> 48 -> 32 -> 6.(没有看懂啊)
就是说679的持久性是6,一位数持久性的结果是0,现在它是已知的有数字是11的持久性,目前尚且不知道什么是12的持久性,但是我们知道如果他们存在,那么位数至少会超过3000位。
这里需要你解决的问题是,什么是最小的数字这样计算的第一步,它的持久性结果在给定的数字?(好吧,看明白了,每一位数字之积,寻找等于这个数的最小的那个数字吧)没组测试数据输入一个不超过1000位的数字。
应该就是从最大的9开始除,一直除到1,如果最后的结果大于9那么就是不存在的了。算是贪心吧,毕竟是从最大的数字开始。可以看做是一耳光高精度运算,简单的除法。
试写代码吧。
算是1A吧,不过感觉代码写的好烂啊,不忍直视
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
#define maxn 1005
int OK, K, c[maxn];
int a[maxn];
void chu(int b[], int i, int n, int p)
{
int j, yu=0;
if(i==n && (b[i]==1||b[i]==0))return ;
if(p == 1)
{
OK = 0;
return ;
}
for(j=i; j<=n; j++)
c[j] = b[j];
for(j=i; j<=n; j++)
{
c[j] += yu * 10;
yu = c[j] % p;
c[j] /= p;
}
if(yu == 0)
{
a[K++] = p;
for(j=i; c[j] == 0 && j<=n; j++);
i=j;
for(; j<=n; j++)
b[j] = c[j];
chu(b, i, n, p);
}
else
chu(b, i, n, p-1);
}
int main()
{
char s[maxn];
while(scanf("%s", s), strcmp(s ,"-1"))
{
int i, n=strlen(s), b[maxn]={0};
for(i=0; i<n; i++)
b[i] = s[i] - '0';
OK = 1, K=0;
chu(b, 0, n-1, 9);
if(n==1)
printf("1%s\n", s);
else if(OK)
{
sort(a, a+K);
for(i=0; i<K; i++)
printf("%d", a[i]);
printf("\n");
}
else
printf("There is no such number.\n");
}
return 0;
}
poj2325的更多相关文章
- poj2325 大数除法+贪心
将输入的大数除以9 无法整除再除以 8,7,6,..2,如果可以整除就将除数记录,将商作为除数继续除9,8,...,3,2. 最后如果商为1 证明可以除尽 将被除过的数从小到大输出即可 #includ ...
- OJ题目分类
POJ题目分类 | POJ题目分类 | HDU题目分类 | ZOJ题目分类 | SOJ题目分类 | HOJ题目分类 | FOJ题目分类 | 模拟题: POJ1006 POJ1008 POJ1013 P ...
随机推荐
- 安装SQL Server2008时 检测时有“重启计算机”失败
第一种解决方案: 在学校的时候 遇到这种问题的解决办法是: 卸载VS,先安装SQL Server 2008 再安装VS 就行了: 第二种解决方案: 如果已经安装过VS,在安装SQL Server200 ...
- 强制关闭myeclipse出现的问题
重启时,可能会出现打不开关闭前所在的workspace.其他workspace可以正常打开. 今天遇到这个问题,以前就遇到过,但是忘记如何解决了.今天在我等了十多分钟后,神奇的myeclipse自己起 ...
- 远程推送,集成极光的SDK,证书制造
由于iOS操作系统限制,我们APP在后台不能做操作,也不能接收任何数据,所以需要用推送来接收消息. APNs服务,苹果官方网址:https://developer.apple.com/library/ ...
- JavaScript HTML DOM - 改变CSS
JavaScript HTML DOM - 改变CSS HTML DOM 允许 JavaScript 改变 HTML 元素的样式. 改变 HTML 样式 如需改变 HTML 元素的样式,请使用这个语法 ...
- Linux命令:chmod命令
chmod命令:改变文件或目录的存取权限 #权限代号 -r 文件被读取 4 -w 文件被写入 2 -x 文件被执行 1 #权限范围 -u 文件所有者 -g 文件所有者所在组 -o 其他 -a 全部 # ...
- 【POJ3461】【KMP】Oulipo
Description The French author Georges Perec (1936–1982) once wrote a book, La disparition, without t ...
- Servlet监听器类型
------------------------serlvet对象监听器------------------------------------------- request监听器(ServletRe ...
- 基于jQuery查找dom的多种方式性能问题
这个问题的产生由于我们前端组每个人的编码习惯的差异,最主要的还是因为代码的维护性问题.在此基础上,我对jQuery源码(1.11.3)查找dom节点相关的内容进行了仔细的查阅,虽然并不能理解的很深入 ...
- jquery 获取元素的 实际宽度和高度
jquery outerHeight方法 outerWidth方法 转: http://www.cnblogs.com/zhja/archive/2012/11/07/2758665.html jqu ...
- IOS 命令行安装备忘
1. 首先要越狱 2. 新增BIGBOSS或者苹果核的源 3. 安装MobileTerminal和MobileTerm Backgrounder (用于后台运行命令),最好r520以上版本,R530还 ...