`
暴风雪
  • 浏览: 394530 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
社区版块
存档分类
最新评论

[n!最后一位非零数]poj 1150

 
阅读更多

题意:

      求P(n,m)的最后一位非零数。

 

思路:

      讨论1-----n中2,5,3,7,9因子的个数,具体移步

http://duanple.blog.163.com/blog/static/7097176720081016113033592/

 

按照我的理解,求n!最后非零为,先把1----n中‘2’和‘5’的因子的数量求出来,因为只有2和5可以构成0,接下来就要分别求出1---n中最后一位为3,7,9的数字的数量,然后相乘就可以得到n!的最后一位的数

#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
typedef long long ll;
ll n, m;
ll get25(ll n ,ll x){
    ll res = 0;
    while(n){
        res+=n/x;
        n/=x;
    }
    return res;
}

ll getodd(int n ,int x){
    if(n == 0)return 0;
    return n/10 + (n%10 >= x) + getodd(n/5 ,x);
}
ll gao(int n ,int x){
    if(n == 0)return 0;
    return gao(n/2,x)+getodd(n ,x);
}

int table[4][4] ={
    6,2,4,8,//last digit of 2^4 2 2^2 2^3
    1,3,9,7,//...3
    1,7,9,3,//...7
    1,9,1,9,//...9
};
int main(){
    while(cin>>n>>m){
        m = n - m;
        ll two = get25(n ,2) - get25(m ,2);
        ll five = get25(n ,5) - get25(m ,5);
        ll three = gao(n ,3) - gao(m ,3);
        ll seven = gao(n ,7) - gao(m ,7);
        ll nig = gao(n ,9) - gao(m ,9);
//        cout<<two<<" "<<five;
        if(two<five){
            puts("5");
            continue;
        }
        ll res = 1;
        if(two != five)res *= table[0][(two - five)%4];
        res *= table[1][(three)%4];
        res *= table[2][(seven)%4];
        res *= table[3][(nig)%4];
        res %= 10;
        printf("%I64d\n",res);
    }
    return 0;
}

 

0
3
分享到:
评论

相关推荐

    python 给你一个正整数列表 L, 判断列表内所有数字乘积的最后一个非零数字的奇偶性。如果为奇数输出1,偶数则输出0。

    # 给你一个正整数列表 L, 判断列表内所有数字乘积的最后一个非零数字的奇偶性。如果为奇数输出1,偶数则输出0。 # 输入示例 # 输入:L=[2,8,3,50] # 输出示例 # 输出:0 # 解析 # 在上题的基础上的改造题, 这里直接...

    求fac的最后一位非零数字

    求fac的最后一位非零数字

    一个零数计算器

    零数计算器计算整管数和零管数

    N元一次方程求解(C++实现)

    包括交换两行、将某一行乘以一个非零数、将某一行加上另一行的倍数。这些操作在C++中可以通过二维数组的索引来实现。例如,交换行可以使用临时变量进行交换,乘以非零数则直接对对应元素进行乘法,加法操作同样如此...

    C++数据结构显示非0数组

    显示非0数组例题个案O(∩_∩)O哈哈~

    上海零数科技有限公司创投信息

    上海零数科技有限公司是一家专注于区块链底层技术及应用场景服务的高新技术企业。自2016年成立以来,公司致力于运用区块链及隐私计算技术,构建数据价值流通基础设施。通过这种方式,零数科技希望确保数据在多个主体...

    优秀资料(2021-2022年收藏)小学三年级上册多位数乘一位数知识点提纲.doc

    小学三年级上册数学课程中的一个重要知识点是多位数乘一位数的计算。这涉及到基础的乘法运算,对于学生建立数学思维和熟练掌握计算技巧至关重要。以下是这个知识点的详细讲解: 1. **因数与积的关系**:在乘法中,...

    苏教版小学数学三年级上册《两、三位数除以一位数》同步练习.pdf

    这篇资料是针对苏教版小学数学三年级上册的《两、三位数除以一位数》这一主题的同步练习,旨在帮助学生巩固和深化对除法的理解。以下是该练习中的主要知识点: 1. 三位数除以一位数的性质:题目指出,三位数除以一...

    C语言-leetcode题解之50-powx-n.c

    然后通过一个循环,每次将n右移一位,判断n的当前最低位是否为1,如果为1则将当前乘积累加到结果中。然后将当前乘积的平方赋给当前乘积,继续循环直到n为0。这种方法的时间复杂度是O(logn),空间复杂度是O(1),非常...

    对象归整.LSP,CAD里面线的零数调整为整数

    CAD里面线的零数调整为整数

    三年级数学下册《除数是一位数的除法》知识点复习.docx

    在小学三年级数学下册的学习中,一个重要的章节是“除数是一位数的除法”。这个章节涉及了多种关键概念和技巧,旨在帮助学生熟练掌握除法运算,为后续的数学学习打下坚实基础。 首先,我们要理解除法的本质是平均分...

    三年级数学下册 采访果蔬会 两、三位数除以一位数3教案 青岛版 教案.doc

    《采访果蔬会——两、三位数除以一位数3》是青岛版小学三年级数学下册的一个教学内容,主要目标在于让学生理解和掌握两、三位数除以一位数的计算方法,特别是涉及商中间有0的除法。教学目标分为以下几个方面: 1. *...

    (中小学教育)一位数除三位数整理复习 (2).ppt

    这篇资料主要讲解的是中小学教育中的一位数除三位数的数学知识,包括口算除法、估算除法、笔算除法以及除法的验算。以下是对这些知识点的详细阐述: 1. **口算除法**:对于整十、整百的数除以一位数,可以通过将被...

    三年级上册两三位数乘以一位数经典习题借鉴.docx

    这篇文档主要针对小学三年级学生,涉及的数学知识点集中在两三位数乘以一位数的运算上,包括笔算方法、特殊数值的乘法规则、估算、倍数关系以及实际问题的解决。以下是这些知识点的详细解释: 1. **笔算两三位数乘...

    笔算乘除法计算法则.doc

    特别地,0除以任何非零数都等于0。例如,27 ÷ 9,从2开始除,不够除,看7,7 ÷ 9 = 0余7,商0写在十位,余数7为个位的被除数。 4. 除数是两位数的除法法则: 类似于一位数的除法,从被除数的高位开始,用除数的...

    小学三年级数学课件《除数是一位数的除法》.docx

    ### 小学三年级数学知识点详解:除数是一位数的除法 #### 一、口算除法 在小学三年级的数学学习中,除法是一项重要的技能。为了更好地掌握这一技能,我们将详细介绍两种基本的口算除法方法: 1. **整千、整百、整...

    两位数除以一位数的练习题库.pdf

    在小学数学中,两位数除以一位数是基础的除法运算,对于培养学生的计算能力和理解除法原理至关重要。这个练习题库包含了15天的练习题目,每天都有10道题,旨在帮助学生熟练掌握这类计算。这些题目都是简单的整数除法...

    三年级上册两三位数除以一位数练习.docx

    这篇文档主要针对三年级学生在学习两三位数除以一位数的数学练习,涵盖了口算、填空、竖式计算和实际应用问题等多个方面。以下是详细的知识点解析: 1. 口算策略:对于64÷2这样的除法,可以通过拆分来计算,如先算...

    密码学 模n的大数幂乘的快速算法

    这是因为任何非零数的0次幂都是1,所以当指数为0时,结果为\( c \)(初始化为1)。 3. **偶数情况处理:** - 如果\( b \mod 2 \neq 0 \)(即\( b \)为奇数),则转到第(5)步。这是因为我们需要先处理偶数指数的...

    《商的变化规律》.ppt

    - 当除数保持不变时,如果被除数乘以一个非零数n,那么商也会乘以n。例如,如果16160320÷8=2020040,那么当被除数变为16160320×2×2=64641280时,商将是2020040×2×2=8080160。 - 相反,如果被除数除以一个非...

Global site tag (gtag.js) - Google Analytics