ブルーブリッジカップの高速パワー

問題の説明
  A、B、Pが与えられると、(A ^ B)mod Pを見つけます。
入力フォーマット
  行を入力してください
  最初の行には、N、M、Pの3つの数字があります。
出力フォーマット
  出力は1行で、要求を示します。
入力例
2 5 3
出力例
2
データサイズと合意
  合計10セットのデータ
  100%のデータでは、AとBはlong longの範囲の非負の整数であり、Pはintの非負の整数です。
悲しい話を追加しました。
裸のテンプレートの質問、提出のコピーと貼り付け、40ポイント。
次に、モジュロの詳細が間違っていました。
40ポイントコード
1 #include <bits / stdc ++。h>
 2  名前空間std を使用 3 typedef long long ll;
4 ll quick_pow(ll x、ll y、ll c){
 5      ll ans = 1 ;
6 while (y){
 7 if(y&1 ){
 8              ans =(ans%c * x%c)%c;
9         }
 10          x =(x%c * x%c)%c;
11年          >> = 1 ;
12     }
 13はansを返します。
14                        }
 15  int main(){
 16      ll x、y、p;
17      while(cin >> x >> y >> p){
 18          ll ans = quick_pow(x、y、p);
19          cout << ans << endl;    
20      }
 21は     0を返し ます22 }

100ポイントコード

1 #include <bits / stdc ++。h>
 2  名前空間std を使用 3 typedef long long ll;
4 ll quick_pow(ll x、ll y、ll c){
 5      ll ans = 1 ;
6 while (y){
 7 if(y&1 ){
 8              ans =(ans%c * x%c)%c;
9         }
 10          x =(x%c * x%c)%c;
11年          >> = 1 ;
12     }
 13はansを返します。
14                        }
 15  int main(){
 16      ll x、y、p;
17      while(cin >> x >> y >> p){
 18          ll ans = quick_pow(x%p、y、p);
19          cout << ans << endl;    
20      }
 21は     0を返し ます22 }

別のシリーズを探す

おすすめ

転載: www.cnblogs.com/fx1998/p/12722077.html