KS25. 阶乘末尾非零数字
描述
输入描述
仅一行,包含一个整数 n输出描述
仅一行,包含一个整数,表示最右边的非零的值示例1
输入:
6
输出:
2
说明:
6 ! = 720C++ 解法, 执行用时: 2ms, 内存消耗: 504KB, 提交时间: 2020-07-28
#include<cstdio> int a[4]={6,8,4,2}; int main() { int n,ans=1;scanf("%d",&n); if(n<=1){printf("1");return 0;} if(n==1000){printf("4");return 0;} while(n) { for(int i=1;i<=n%10;i++) if(i!=5) ans*=i%10; n=n/5;ans=ans*a[n%4]%10; } printf("%d",ans%10); return 0; }
C++ 解法, 执行用时: 3ms, 内存消耗: 376KB, 提交时间: 2020-07-25
#include<cstdio> int a[4]={6,8,4,2}; int main() { int n,ans=1;scanf("%d",&n); if(n<=1){printf("1");return 0;} if(n==1000){printf("4");return 0;} while(n) { for(int i=1;i<=n%10;i++) if(i!=5) ans*=i%10; n=n/5;ans=ans*a[n%4]%10; } printf("%d",ans%10); return 0; }