文章

17

粉丝

507

获赞

8

访问

158.6k

头像
请教下,为什么ans=ans%100000000000中0的个数超出11位就WA了?
P1059
发布于2020年5月11日 11:08
阅读数 7.0k

#include <stdio.h>
int main()
{
    int n;
    scanf("%d",&n);
    long long int ans=1,cnt;
    for(int i=1;i<=n;++i)
    {
        ans*=i;

        //去掉末尾的0,因为求的是最右边的非零位
        while(ans%10==0)
            ans/=10;

        //
        ans=ans%100000000000;//不能超过11位
    }

    //此时求出来的不仅仅有非零的最右边的个位,还有前面的一堆
    //因此要取个位
    cnt=ans%10;
	
    printf("%d",cnt);
}

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发