阅读背景:

阶乘_Claire_ljy的博客

来源:互联网 

n!最右边非0位

不会!!!啊啊啊啊,不能理解

版本1

#include <cstdio>
using namespace std;
int n,ans=1;
int a[4]= {6,8,4,2};
int main() {
    scanf("%d",&n);
    while (n>0) {
        for (int i=1; i<=n%10;++i){
            if(i!=5)ans=ans*i%10;//除5外的数字原样乘取最后一位,那少了一个5???
        }
        n=n/5;//n/5即少乘了多少次5
        //即乘8的次数 
        ans=ans*a[n%4]%10;//四次一循环(此时可以放心%10) 
    }
    printf("%d",ans);
    return 0;
}#inclu



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: