试题 算法训练 阶乘

曾经终败给现在 2024-03-31 08:45 203阅读 0赞

试题 算法训练 阶乘

资源限制
内存限制:512.0MB C/C++时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s
问题描述
  一个整数n的阶乘可以写成n!,它表示从1到n这n个整数的乘积。阶乘的增长速度非常快,例如,13!就已经比较大了,已经无法存放在一个整型变量中;而35!就更大了,它已经无法存放在一个浮点型变量中。因此,当n比较大时,去计算n!是非常困难的。幸运的是,在本题中,我们的任务不是去计算n!,而是去计算n!最右边的那个非0的数字是多少。例如,5! = 12345 = 120,因此5!最右边的那个非0的数字是2。再如:7! = 5040,因此7!最右边的那个非0的数字是4。请编写一个程序,输入一个整数n(n<=100),然后输出n! 最右边的那个非0的数字是多少。
  输入格式:输入只有一个整数n。
  输出格式:输出只有一个整数,即n! 最右边的那个非0的数字。
输入输出样例
样例输入
6
样例输出
2
提交代码

  1. #include<stdio.h>
  2. int main()
  3. {
  4. long long int n;
  5. int t=1;
  6. scanf("%lld",&n);
  7. for(int i=1;i<=n;i++)
  8. {
  9. t*=i;
  10. while(t%10==0)//去掉尾数0
  11. t/=10;
  12. t=t%1000;//对该阶乘保留后3位尾数
  13. }
  14. t%=10;
  15. printf("%d\n",t);
  16. return 0;
  17. }

发表评论

表情:
评论列表 (有 0 条评论,203人围观)

还没有评论,来说两句吧...

相关阅读

    相关 算法

    问题描述   一个整数n的阶乘可以写成n!,它表示从1到n这n个整数的乘积。阶乘的增长速度非常快,例如,13!就已经比较大了,已经无法存放在一个整型变量中;而35!就更大了