372. Super Pow

    xiaoxiao2021-03-25  100

    又是一道数学题,看着怕怕的,。。。看了一下discuss,照着其思路写代码. 主要利用了(a*b)%divide=((a%divide)*(b%divide))%divide;

    class Solution { public: int powFunc(int a,int b,int divide) { int result=1; for(int i=0;i<b;i++) result=((result%divide)*(a%divide))%divide; return result; } int num2Length(int num) { if(num==0) return 1; int length=0; while(num!=0) { num/=10; length++; } return length; } int superPow(int a, vector<int>& b) { int result=1; int divide=1337; for(int i=0;i<b.size();i++) { int length=num2Length(b[i]); int multi=1; for(int i=0;i<length;i++) multi*=10; result=(powFunc(result,multi,divide)*powFunc(a,b[i],divide))%divide; } return result; } };
    转载请注明原文地址: https://ju.6miu.com/read-25709.html

    最新回复(0)