leetcode :. 372スーパーパワー(数学)------金型の問題

トピック:

ここに画像を挿入説明

分析:

(1)(AXB)%C =(A1 + N1 C)(A2 + N2 C)%C =(a1xa2)%C =(A1%C XA2%C)%のC
(2)^ Bの%のC
(= %のC)^ B%C
=((%のC)^(B - T)*(%c)は^ T)%C

式の証明:

(X + Y)%C =(Xの%のC + Y%C)%のC

AAA ... AAA%C =((AC)...%C + C * ...%のC)%C =(AC)...%のC

(3)高速電力アルゴリズムを習得します。
(4):以下のチャートを見て、あなたがする必要があります(パイレーツ)
ここに画像を挿入説明

コード:

int main()
{
 int a=2;
 vector<int> v;
 v.push_back(1);
 v.push_back(0);
 a=a%1337;
 int A[10];//存放a的i次方。
 A[0]=1;
 for(int i=1;i<10;i++)
 {
  A[i]=(A[i-1]*a)%1337;
  } 
  int b=1;
 if(v.size()==1) return A[v[0]];
 for(int i=0;i<v.size()-1;i++)
 {
  b=(b*A[v[i]])%1337;
  //2
  int b1=b*b;
  b1=b1%1337;
  //4
  int b2=b1*b1;
  b2=b2%1337;
  //8
  int b3=b2*b2;
  b3=b3%1337;
  b=(b3*b1)%1337;
 }
 cout<<(b*A[v[v.size()-1]])%1337;
 
}
公開された207元の記事 ウォンの賞賛134 ビュー6751

おすすめ

転載: blog.csdn.net/weixin_42721412/article/details/104570293