题目描述

也许你早就知道阶乘的含义,N阶乘是由1到N相乘而产生,如:

12! = 1 x 2 x 3 x 4 x 5 x 6 x 7 x 8 x 9 x 10 x 11 x 12 = 479,001,600

12的阶乘最右边的非零位为6。

写一个程序,计算N(1<=N<=50,000,000)阶乘的最右边的非零位的值。

注意:10,000,000!有2499999个零。

输入输出格式

输入格式:

仅一行包含一个正整数N。

输出格式:

单独一行包含一个整数表示最右边的非零位的值。

输入输出样例

输入样例#1:

  1. 12
输出样例#1:

  1. 6

  1. long long 加暴力去0取模可以过大部分点
    正解:
    *2*5能凑成10,所以每个数扔掉10 2 5因子再乘
    cnt表示25多了几个,最后乘上
    2是有规律的,2 4 6 8
  1. #include <iostream>
  2. #include <cstdio>
  3. #include <algorithm>
  4. #include <cstring>
  5. using namespace std;
  6. int n,x=,cnt=,a[]={,,,};
  7. int main(int argc, const char * argv[]) {
  8. scanf("%d",&n);
  9. for(int i=;i<=n;i++){
  10. int t=i;
  11. while(t%==) t/=;
  12. while(t%==) t/=,cnt++;
  13. while(t%==) t/=,cnt--;
  14. x=(x*(t%))%;
  15. }
  16. if(cnt) x=x*a[cnt%]%;
  17. printf("%d",x);
  18. return ;
  19. }

洛谷P1134 阶乘问题[数论]的更多相关文章

  1. 洛谷——P1134 阶乘问题

    P1134 阶乘问题 题目描述 也许你早就知道阶乘的含义,N阶乘是由1到N相乘而产生,如: 12! = 1 x 2 x 3 x 4 x 5 x 6 x 7 x 8 x 9 x 10 x 11 x 12 ...

  2. 洛谷—— P1134 阶乘问题

    https://www.luogu.org/problemnew/show/P1134 题目描述 也许你早就知道阶乘的含义,N阶乘是由1到N相乘而产生,如: 12! = 1 x 2 x 3 x 4 x ...

  3. 洛谷P1134 阶乘问题

    题目描述 也许你早就知道阶乘的含义,N阶乘是由1到N相乘而产生,如: 12! = 1 x 2 x 3 x 4 x 5 x 6 x 7 x 8 x 9 x 10 x 11 x 12 = 479,001, ...

  4. 【洛谷P1134 阶乘问题】

    [传送门] #include<bits/stdc++.h> using namespace std; int main() { ; cin>>a; ;i<=a;i++) ...

  5. 洛谷 P1134 阶乘问题

    一开始只保留最后一位,交上去29 #include<cstdio> #include<cmath> #include<algorithm> #define REP( ...

  6. 洛谷 P1134 阶乘问题 题解

    题面 很裸的边取模边乘.注意因为进位的原因模数应该比较大: 另外,这道题是一道标准的分块打表例题(那样的话数据就可以更大了),可以用来练习分块打表: #include<bits/stdc++.h ...

  7. 洛谷P1009 阶乘之和 题解

    想看原题请点击这里:传送门 看一下原题: 题目描述 用高精度计算出S=!+!+!+…+n! (n≤) 其中“!”表示阶乘,例如:!=****××××. 输入格式 一个正整数N. 输出格式 一个正整数S ...

  8. 洛谷 P2726 阶乘 Factorials Label:Water

    题目背景 N的阶乘写作N!,表示小于等于N的所有正整数的乘积. 题目描述 阶乘会变大得很快,如13!就必须用32位整数类型来存储,到了70!即使用浮点数也存不下了. 你的任务是找到阶乘最前面的非零位. ...

  9. 洛谷P2726 阶乘 Factorials

    题目背景 N的阶乘写作N!,表示小于等于N的所有正整数的乘积. 题目描述 阶乘会变大得很快,如13!就必须用32位整数类型来存储,到了70!即使用浮点数也存不下了. 你的任务是找到阶乘最前面的非零位. ...

随机推荐

  1. C# 特性学习之一、CallerMemberName、CallerFilePath和CallerLineNumber

    在开发中经常会写个公有静态类记录日志,如下: /// <summary> /// Writes the error. /// </summary> /// <param ...

  2. Java Enumeration接口

    Enumeration接口定义 Enumeration接口与Iterator接口用法比较 一. 1.Enumeration接口定义 public interface Enumeration<E& ...

  3. 【工业串口和网络软件通讯平台(SuperIO)教程】八.SuperIO通讯机制与设备驱动对接的说明

    SuperIO相关资料下载:http://pan.baidu.com/s/1pJ7lZWf 1.1    通讯机制说明 通讯的总体机制采用呼叫应答方式,就是上位机软件主动发送请求数据命令,下位机终端接 ...

  4. Effective c++读书笔记

    1.视C++为一个语言联邦     C.object-oriented C++.template C++.STL 2.尽可能使用const:     1)关键字const出现的星号左边,表示被指物事常 ...

  5. Dependency management

    Play’s dependency management system allows you to express your application’s external dependencies i ...

  6. link与@import的区别

    我们都知道link与@import都可以引入css样式表,那么这两种的区别是什么呢?先说说它们各自的链接方式,然后说说它们的区别~~~ link链入的方式: <link rel="st ...

  7. js 之 continue break return 用法及注意事项

    1,continue continue有两种用法: 1,continue; 这种用法必须包含在循环里,否则报错,例子: for(var i=0;i<10;i++){ if(i%2===0){ c ...

  8. 迷你版jQuery——zepto核心源码分析

    前言 zepto号称迷你版jQuery,并且成为移动端dom操作库的首选 事实上zepto很多时候只是借用了jQuery的名气,保持了与其基本一致的API,其内部实现早已面目全非! 艾伦分析了jQue ...

  9. Windows8.1系统下让VS2012编译运行IIS Express 64位 调试器

    有时候在window8以上系统中对C#系统进行调试 提示不能使用32位IIS Express,如果每次都采用IIS 在vs代码进行调试的时候很麻烦 下面我们就介绍一下怎么用编译调试64位代码: 网上方 ...

  10. Android—自定义控件实现ListView下拉刷新

    这篇博客为大家介绍一个android常见的功能——ListView下拉刷新(参考自他人博客,网址忘记了,阅读他的代码自己理解注释的,希望能帮助到大家): 首先下拉未松手时候手机显示这样的界面: 下面的 ...