题目大意:让求n!在base进制下的位数以及末尾0的连续个数。

  • 多少位

log_{10}256=log_{10}2102+log_{10}5*101+log_{10}610^0

可以发现,只和最高位有关,要想进位必须有10^3 ,那么通解:

数值a 在 b 进制下的位数为:floor(log_ba)+1

这里是阶乘化简: log_bn!=log_b1+log_b2+...+log_bn

  • 末尾有多少个0

可以考虑,123456789(25)...(5*600)

即进制的最大质因数,都多少个?

这里首先就有600个,注意是 51,52,53,54,...,5*600 这600个,

但是可以发现600,也可以分解:于是就有:51,52,53,54,...,5*600

即:1,2,3,4,5,6,...,600

依次地推下去。

最后要注意的是如果进制 b 最大质因数有k个,那么结果要 / k,因为必须是整除 b 进制。

#include <bits/stdc++.h>

using namespace std;

int cal_zero(int n,int b) {
int i,d,m,t;
for(i=2,d=1;i<=b;i++) {
m = 0;
while(b%i==0) {
m++;
d = i; //最大质因数
b /=i;
}
} for(t=0; n>0 ; ) {
t +=n/d;
n/= d;
}
return t/m;
} int main()
{
int n,b;
while(scanf("%d%d",&n,&b)!=EOF) { double l = 0;
for(int i=2;i<=n;i++) {
l += log10(i)/log10(b);
}
l++; int de = floor(l); int z = cal_zero(n,b); printf("%d %d\n",z,de); }
return 0;
}

Uva 10061 进制问题的更多相关文章

  1. UVA 10061 How many zero's and how many digits ? (m进制,阶乘位数,阶乘后缀0)

    题意: 给出两个数字a和b,求a的阶乘转换成b进制后,输出 (1)后缀中有多少个连续的0? (2)数a的b进制表示法中有多少位? 思路:逐个问题解决. 设a!=k.  k暂时不用直接转成b进制. (1 ...

  2. n!在k进制下的后缀0

    问n! 转化成k进制后的位数和尾数的0的个数.[UVA 10061 How many zeros and how many digits?] Given a decimal integer numbe ...

  3. SQL Server 进制转换函数

    一.背景 前段时间群里的朋友问了一个问题:“在查询时增加一个递增序列,如:0x00000001,即每一个都是36进位(0—9,A--Z),0x0000000Z后面将是0x00000010,生成一个像下 ...

  4. 【搬砖】安卓入门(2)- Java开发编程基础--进制转换和运算符

    02.01_Java语言基础(常量的概述和使用)(掌握) A:什么是常量 在程序执行的过程中其值不可以发生改变 B:Java中常量的分类 字面值常量 自定义常量(面向对象部分讲) C:字面值常量的分类 ...

  5. TCP进制转换

    /// <summary> /// 将十六进制字符串转化为字节数组 /// </summary> /// <param name="src">& ...

  6. 将十进制数转为一个n位数的密码(每位都是个m进制数)

    例如一个6位数的10进制密码,共有106个密码,如果把每个6位数的密码编成号就是[0,106-1].这是十进制的情况,即6个位,每个位有10种选择.如果要遍历所有密码,需要6重for循环,每个循环10 ...

  7. - >code vs 1475 m进制转十进制

    1475 m进制转十进制  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 白银 Silver 题解  查看运行结果   题目描述 Description 将m进制数n转化成一个 ...

  8. ->code vs 1474 十进制转m进制

    1474 十进制转m进制  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 白银 Silver 题解  查看运行结果   题目描述 Description 将十进制数n转换成m进 ...

  9. C++各种进制的转换

    /* @author:CodingMengmeng @theme:各种进制之间的转换 @time:2017-1-6 21:39:08 @blog:http://www.cnblogs.com/codi ...

随机推荐

  1. Ionic3,懒加载(二)

    Ionic懒加载: 普通的ionic项目中,创建好每一个Component页面后,都需要在app.module.ts中进行declaration(声明)后才能进行调用,而这样的声明方式,及在APP加载 ...

  2. Python学习 day08

    一.open打开文件 文件操作包含以下三个步骤: 1.文件路径 2.编码方式 3.操作方式:‘’只读‘’.“只写”.“读写” 等 1.只读 r (mode默认值) 例: f = open('d:\py ...

  3. zabbix 另一种方式取 zabbix-sender

    一,zabbix-sender介绍 这种模式是两主机并没有agent互联 使用zabbix-serder的话适用那种没有固定公网IP的,实时系统数据监控操作 还一个实用为零延迟数据监控, 本省zabb ...

  4. IE Error: '__doPostBack' is undefined 问题解决

    突然遇到个很奇怪的BUG,翻页控件,其他浏览器一切正常,IE无法翻页,会提示 '__doPostBack' is undefined 后来搜索发现: [原文發表地址] Bug and Fix: ASP ...

  5. 机器学习——GBDT

    基础概念 GBDT(Gradient Boosting Decision Tree) 全称梯度提升决策树,是一种迭代的决策树算法.GBDT是集成学习Boosting的家族成员,GBDT中的树是回归树, ...

  6. CentOS 下 安装 JDK8

    1.下载 在 /usr/local 目录下创建目录 java # cd /usr/local # mkdir java 登录网址:http://www.oracle.com/technetwork/j ...

  7. [Modelsim] 仿真的基本操作

    切换路径,建立库并编译所有源文件之后, 键入命令: vopt +acc topmodulename -o top vsim top 其中topmodulename是顶层模块的名称.

  8. 深入学习keepalived之一 keepalived的启动

    1.keepalived的启动过程: 启动健康检查子进程和vrrp子进程.其中_WITH_LVS_,_WITH_VRRP_在configure和configure.in文件中定义. 源码如下: /* ...

  9. html 跨过CSRF验证

    /* CSRF配置 */function csrfSafeMethod(method) { // these HTTP methods do not require CSRF protection r ...

  10. MVC类库视图在UI使用方法

    在类库中固定文件:Controller Views  引用一下两个程序集(类库和UI项目都需要引用)(似乎只需要引用mvc的,build似乎在引用文件中不见了?有空测试一下) 如此方式,一个登录需要是 ...