统计结成结果的末尾0的个数
今天看到一道题目,是让求解 1024! 末尾的0的个数。对于这个问题,作者首先想到了蛮力法。。先将阶乘的结果计算出来放入数组然后统计末尾0的个数。这样做的话首先得先进行较大规模的阶乘运算然后再得到所需结果。从另一个角度来考虑,得到0的最简方式为 2*5=10 ,故可以考虑阶乘数中2和5两个因子的个数,然而当阶乘数较大的时候,因子2的个数是远大于因子5的个数的,所以可以直接对因子5的个数进行统计就可以直接得到结果,大大减少了运算的时间开销。
先上蛮力法的代码:

#include <iostream> #include <cstring> #include <memory h="">using namespace std;int main() {int n = 1024;int result[5000];memset(result,0,sizeof(result));int count = 1;result[0] = 1;while(count <= n){for(int i = 0; i < 5000; i++){result[i] *= count;}for(int i = 0; i < 5000; i++){if(result[i] >= 10){result[i + 1] += result[i] / 10;result[i] = result[i] % 10;}}count++;}int start;for(start = 4999; start >= 0; start--){if(result[start] != 0){break;}}int num = 0;for(int i = 0; i < start; i++){if(result[i] == 0){num++;}else{break;}}cout << num;return 0;}

输出结果:

253

然后是对因子5统计结果的代码:

#include<iostream>using namespace std;int main() {int n = 1024;int count = 0;while(n){count+=(int)(n/=5);}cout << count;return 0; } </iostream>

输出结果:

253

统计阶乘结果的末尾0的个数相关推荐

  1. c语言 n阶阶乘尾0个数,计算n的阶乘(n!)末尾0的个数

    题目: 给定一个正整数n,请计算n的阶乘n!末尾所含有"0"的个数. 举例: 5!=120,其末尾所含有的"0"的个数为1: 10!= 3628800,其末尾所 ...

  2. 滴滴2017校园招聘编程题——阶乘末尾0的个数

    1.题目如下图所示: 2.分析:         这个题目描述的很简单,思路看似也很清晰,我们第一想到的肯定就是正常计算和统计--先计算N!阶乘的结果,然后统计结果末尾0的个数.看似这是一个很好的也很 ...

  3. 阶乘末尾0的个数(java)

    从输入中读取一个数n,求出n!中末尾0的个数. 输入格式: 输入有若干行.第一行上有一个整数m,指明接下来的数字的个数.然后是m行,每一行包含一个确定的正整数n,1<=n<=1000000 ...

  4. 阶乘末尾 0 的个数

    整数区间内整数的因子的个数 如求 100 的阶乘末尾 0 的个数: 思路:一个数 n 的阶乘末尾有多少个 0 取决于从 1 到 n 的各个数的因子中 2 和 5 的个数((2, 5) 构成的对的个数) ...

  5. 求阶乘N!末尾0的个数

    POJ上有这个题目.http://poj.org/problem?id=1401.去掉一大堆没有用的信息,POJ的描述如下: For example, they defined the functio ...

  6. 求n的阶乘末尾0的个数

    输入一个正整数n,求n!(即阶乘)末尾有多少个0? 比如: n = 10; n! = 3628800,所以答案为2. 思路:末尾0的个数就是指这个数总共有几个10因子,而10又能表示成2和5的乘积.假 ...

  7. C++版本计算n阶乘末尾0的个数原理讲解及代码实现

    C++版本计算n阶乘末尾0的个数原理讲解及代码实现 /*! * Copyright (c) 2020,ZYF. * All Rights Reserved. * * \file Factorial.c ...

  8. 2017年网易校招题 末尾0的个数

    题目描述 输入一个正整数n,求n!(即阶乘)末尾有多少个0? 比如: n = 10; n! = 3628800,所以答案为2 输入描述: 输入为一行,n(1 ≤ n ≤ 1000) 输出描述: 输出一 ...

  9. 求表达式 f(n)结果末尾0的个数

    输入一个自然数n,求表达式 f(n) = 1!*2!*3!*.....*n! 的结果末尾有几个连续的0? 输入描述: 自然数n 输出描述: f(n)末尾连续的0的个数 输入例子1: 11 输出例子1: ...

最新文章

  1. python中获取中位数
  2. 音视频通话:小议音频处理与压缩技术
  3. Hive创表异常,FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask.
  4. fortran subroutine_Fortran:派生数组与数组传递进子程序耗费时间比较
  5. PhP加载时显示动画,在ajax请求完之前的loading加载的动画效果实现
  6. linux guide编译器,GUIDE编译器-GUIDE编程工具-GUIDE编译器下载 v1.0.2官方版-完美下载...
  7. 物流行业解决方案:聚焦物流行业数据痛点,帮助企业搭建数据平台
  8. 【Flask】 结合wtforms的文件上传表单
  9. ADC的计算策略.针对ADC值经常跳变的电路获取正确结果
  10. 无线AP与无线路由的区别
  11. sql date_format用法
  12. 专访李华明:90后IT程序员的奋斗之路
  13. EDR端点检测与响应
  14. Python量化交易实战:获取股票数据并做分析处理
  15. CAD将选中的实体做成块(网页版)
  16. Egg开发项目实践纪实
  17. Windows窗口API
  18. 一个前端菜鸟的成长历程
  19. ddos肉鸡都是哪来的?
  20. tta部署_TTA、丰源轮胎云平台项目合作交接仪式

热门文章

  1. android 标题栏,状态栏和导航栏的区别
  2. CnOpenData中国高校专利统计数据
  3. 带空格的字符串输入问题
  4. geoplot solving enviroment 问题
  5. 移动数字化平台赋能新型智慧城市建设
  6. oracle 用户表数目,表大小,视图数目及表空间等查询增加修改删除操作
  7. 针对python的pdf转png的一些问题总结
  8. 初识PKI/CA和数字证书
  9. idea打jar包找不到或无法加载主类
  10. 迈拓维矩科技园开工奠基仪式盛大举行