zero(NOIP模拟赛 Round 4)
题目描述
假设x=N!,那么x的末尾有多少个零呢?
输入
一行,一个整数N。
输出
输出只有一个整数,表示x末尾零的个数。
这道题目,我们看一看数据范围,
10^1000肯定是高精啦!
然后我们再想一想如何计算多少个0
我们可以肯定0=2*5(好吧,只是递推式),并且2的数量一定比5多
所以我们只需要计算N!中含有多少个5
然后我们列个表5 10 15 20 25 30 35 40 45 50
1 1 1 1 2 1 1 1 1 2
很显然5的个数就可以得到递归式:
while(num)
{
num/=5;ans+=num;
}
然后贴一下代码经验:
如果像我写的一样,在函数中调用字符数组的指针,那么我们如果要将这个数组清空,不能用memset而要for一遍,并且要提前记录strlen(a)因为你在清零的时候,strlen(a)不是定值!!
再说一遍
调用指针数组时不能用memset!!!
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
char qaq[];
char ans[];
int num1[],num2[];
void gjj(char a[],char b[])
{ memset(num1,,sizeof(num1));
memset(num2,,sizeof(num2));
int l1=strlen(a),l2=strlen(b),l;
for(int i=;i<=l1-;i++)
num1[l1-i-]=a[i]-'';
for(int i=;i<=l2-;i++)
num2[l2-i-]=b[i]-'';
if(l1>l2)l=l1;
else l=l2;
for(int i=;i<=l-;i++)
{
num1[i]+=num2[i];
if(num1[i]>=)num1[i+]++,num1[i]-=;
}
while(num1[l])l++;
for(int i=l-;i>=;i--)
a[l-i-]=num1[i]+;
}
void div(char a[],int b)
{
int r[];
memset(r,,sizeof(r));
int num=-;
int d=;
for(int i=;i<strlen(a);i++)
{
r[++num]=(d*+a[i]-'')/b;
d=(d*+(a[i]-''))%b;
}
int p=;
int qs=strlen(a);
for(int i=;i<qs;i++)
a[i]=;
for(int i=;i<=num;i++)
if(!r[i])++p;else break;
int tot=-;
for(int i=p;i<=num;i++)
{
a[++tot]=r[i]+'';
}
}
int main(){
freopen("zero.in","r",stdin);
freopen("zero.out","w",stdout);
scanf("%s",qaq);
ans[]='';
while()
{
div(qaq,);
if(!strlen(qaq))break;
gjj(ans,qaq);
}
printf("%s\n",ans);
fclose(stdin);
fclose(stdout);
}
zero(NOIP模拟赛 Round 4)的更多相关文章
- 水(NOIP模拟赛Round #10)
题目描述: 小Z有一个长度为的数列.他有次令人窒息的操作,每次操作可以使某个数字或.他当然是希望这些数字的乘积尽量小了.为了简化题目,你只需输出操作完成后的数列即可. ———————————————— ...
- 小红帽的画笔(NOIP模拟赛Round 7)
又到了神奇的模拟赛时间~ 真是丧~ 好吧我们来看看题目 小红帽是Pop star上最著名的人类画家,她可以将任何画出的东西变成真实的物品.赋予她这样神奇能力的正是她手上的画笔. 小红帽每次作画时,都需 ...
- YYH的营救计划(NOIP模拟赛Round 6)
题目描述 “咚咚咚……”“查水表!”原来是查水表来了,现在哪里找这么热心上门的查表员啊!YYH感动的热泪盈眶,开起了门…… YYH的父亲下班回家,街坊邻居说YYH被一群陌生人强行押上了警车!YYH的父 ...
- 题(NOIP模拟赛Round #10)
题目描述: 有一张的地图,其中的地方是墙,的地方是路.有两种操作: 给出个地点,询问这个地点中活动空间最大的编号.若询问的位置是墙,则活动空间为:否则活动空间为询问地点通过四联通能到达的点的个数.如果 ...
- 大(NOIP模拟赛Round #10)
题目描述: 小Z有个n个点的高清大图,每个点有且只有一条单向边的出边.现在你可以翻转其中的一些边,使他从任何一个点都不能通过一些道路走回这个点.为了方便,你只需输出方案数对取模即可.当在两个方案中有任 ...
- bananahill(NOIP模拟赛Round 8)
题目描述 香蕉川由座香蕉山组成,第i座山有它的高度.小Z准备从左到右爬这里的恰好座香蕉山,但他不希望山的高度起伏太大,太过颠簸,会让本就体育不好的他过于劳累.所以他定义了爬山的劳累度是所有爬的相邻的两 ...
- 战斗机的祈雨仪式(NOIP模拟赛Round 7)
[问题描述] 炎炎夏日,如果没有一场大雨怎么才能尽兴?秋之国的人民准备了一场祈雨仪式.战斗机由于拥有操纵雷电的能力,所以也加入了其中,为此,她进行了一番准备. 战斗机需要给自己的Spear of Lo ...
- 魔法使的烟花(NOIP模拟赛Round 7)
[问题描述] 魔法森林里有很多蘑菇,魔法使常常采摘它们来制作魔法药水.为了在6月的那个奇妙的晚上用魔法绽放出最绚丽的烟花,魔法使决定对魔法森林进行一番彻底的勘探. 魔法森林分为n个区域,由n-1条长度 ...
- 灰姑娘的水晶鞋(NOIP模拟赛Round 7)
[问题描述] 传说中的水晶鞋有两种颜色:左边的水晶鞋是红色,右边的是蓝色,据说穿上它们会有神奇的力量. 灰姑娘要找到她所有的n双水晶鞋,它们散落在一条数轴的正半轴上,坐标各不相同,每双水晶鞋还有一个权 ...
- YYH的球盒游戏(NOIP模拟赛Round 6)
题目描述 YYH有一些总共有种颜色的球,他有颜色的球个.他同样有个盒子,第个盒子能放个球. 他的目标是把这个球按规则放进个盒子里: 对于一个盒子,对于每种颜色的球至多只能放个. 把颜色为的球放进盒子, ...
随机推荐
- easyPOI导出excel报错
http-nio--exec- at :: - excel cell export error ,data is :com.jn.ssr.superrescue.web.qc.dto.Automati ...
- Spring的注解@Qualifier
近期在捯饬spring的注解,现将遇到的问题记录下来,以供遇到同样问题的童鞋解决~ 先说明下场景,代码如下: 有如下接口: public interface EmployeeService { pub ...
- Eclipse EE 运行 Myeclipse Web 应用
第一步:进入项目所在目录,打开.project文件,找到<natures>...</natures>标签,在中间添加如下子标签内容 <nature>org.ecli ...
- 9 Django 模型层(2) --多表操作
创建模型 实例:我们来假定下面这些概念,字段和关系 作者模型:一个作者有姓名和年龄. 作者详细模型:把作者的详情放到详情表,包含生日,手机号,家庭住址等信息.作者详情模型和作者模型之间是一对一的关系( ...
- CC3200串口UART1配置
1. 首先打开工程\CC3200SDK_1.1.0\example\adc\ewarm,以ADC例程为例,修改串口引脚复用,先看下引脚图 2. 修改引脚复用代码 void PinMuxConfig(v ...
- Buildroot ipa image
参考: https://github.com/csmart/ironic-python-agent/tree/buildroot/imagebuild/buildroot#buildroot-iron ...
- Nginx下配置codeigniter框架
原来在winserver+Apache环境下工作良好的一个微信公众号后台迁移到阿里云(环境:Ubuntu 64位 | PHP5.4 | Nginx1.6)下却频出 404,403,只能访问CI rou ...
- (总结)Nginx使用的php-fpm的两种进程管理方式及优化
PS:前段时间配置php-fpm的时候,无意中发现原来它还有两种进程管理方式.与Apache类似,它的进程数也是可以根据设置分为动态和静态的. php-fpm目前主要又两个分支,分别对应于php-5. ...
- tomcat调优(Mark)
http://blog.csdn.net/jinwanmeng/article/details/7756591
- BZOJ1025 [SCOI2009]游戏 【置换群 + 背包dp】
题目链接 BZOJ1025 题解 题意就是问一个\(1....n\)的排列在同一个置换不断重复下回到\(1...n\)可能需要的次数的个数 和置换群也没太大关系 我们只需知道同一个置换不断重复,实际上 ...