问题标题: 酷町堂:2647

0
0
已解决
徐子宸
徐子宸
中级天翼
中级天翼

2647   N的阶乘经验值:800

题目描述 Description

计算N的阶乘的最后一个非0数字。

输入描述 Input Description

一个不大于4220的整数N

输出描述 Output Description

输出N!的最后一位非0整数

样例输入 Sample Input

7

样例输出 Sample Output

4

90:

#include <iostream>

using namespace std;

int n,ans=1;

int a[4]= {6,8,4,2};

int main() {

cin>>n;

while (n>0) {

for (int i=1; i<=n%10;++i)

if (i!=5) ans=ans*i%10;

n=n/5;

ans=ans*a[n%4]%10;

}

cout<<ans;

return 0;

}


0
已采纳
黄子扬
黄子扬
初级天翼
初级天翼

每次去一下零再%10就可以了

黄子扬在2020-08-15 20:46:58追加了内容

每次判断末尾,是0就删,然后在%10

黄子扬在2020-08-15 20:47:08追加了内容

我写一下吧

我要回答