小编scu*_*mmy的帖子

^ b ^ c的最后一位数字

我一直坚持这个问题:

给定a,b和c三个自然数(例如1 <= a,b,c <= 10 ^ 9),你应该找到数字a ^ b ^ c的最后一位数."

我首先想到的是用于提高功率n的O(log n)算法.

   int acc=1; //accumulator
   while(n>0) {
        if(n%2==1)
            acc*=a;
        a=a*a;
        n/=2;
    }
Run Code Online (Sandbox Code Playgroud)

显然,一些基本的数学可能会有所帮助,比如"最后一位数"的东西:

Last_digit(2^n) = Last_digit(2^(n%4))
Run Code Online (Sandbox Code Playgroud)

其中n%4是除法的剩余部分n/4

简而言之,我试图将这些结合起来,但我无法顺利进行.

一些帮助真的会被贬低.

math exponentiation

8
推荐指数
1
解决办法
663
查看次数

标签 统计

exponentiation ×1

math ×1