hdu1061 Rightmost Digit

    说实话,这道题给人的感觉不难,虽然第一次提交的时候超时了一次,然后看了一下数据量,稍作修改,提交,A了,但现在还是不知道为什么A了,上网搜了各种题解,感觉和他们的还是不一样。

 

解题思路:因为它要求的就是最后结果的个位数,又因为它是n个n相乘的结果,我只要去n的个位数就够了,就是n对10取余,然后(n%10)相乘n次,每次又要对10取余,但发现数据量有点大,因为要循环n次相乘,再对循环次数做处理,让n对10000取余,就够了,这里我自己也有点不明白。

 

贴出代码:

 

#include <stdio.h>

int main()
{
    int n, T;
    int num;
    scanf("%d", &T);
    while(T--)
    {
        scanf("%d", &n);
        num = 1;
        for(int i = 0; i<n%10000; i++)    //对相乘的次数做处理
        {
            num = (num*(n%10))%10;     //求n的余数与它相乘,然后再取余
        }
        printf("%d\n", num);
    }
}

 

hdu1061 Rightmost Digit,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。