蓝桥杯算法训练VIP-阶乘 - C语言网 (dotcpp.com)
1.输入的数是n(n<=100),输出的是最右边不是0的数字
2.只让我们找到那个数字是多少,如果我们认真做这道题,我们会计算到出来这个数是多少,然后再查找那个数字是几,而且这个数可能超限;那么我们就可以限制计算中的每个数的大小都是3位或者4位数字,不让他们超过int的表示范围,见到0就噶见到就噶
#include<stdio.h>
int main()
{
int n;
scanf("%d",&n);
int mul=1;
do
{
//将最后的每个数字限定在1000之内
mul=((mul%1000)*n)%1000;
while(mul%10==0)
{
mul/=10;
}
//每次结束的时候个位都不是0
}while(--n);
printf("%d",mul%10);
return 0;
}
有人回问mul=((mul%1000)*n)%1000为什么要取那么多次余,在计算的最后取余也是一样的吗???
看这里