例4.10かわいいA ^ B
タイトル説明
A ^ Bの整数表現の最後の3桁の数字を求めています。説明:A ^ B "はA、Bのパワー" の意味であります
エントリー
テストケースは、複数の各インスタンスに対して1つの列を含む入力データは、2つの正整数AとBは()、A = 0の場合、B = 0は、それが処理することなく、入力データの終わりを示します。
輸出
各テストケースのために、最後の3つの出力A ^ B整数表現、行当たりそれぞれ出力します。
サンプル入力
2 3 12 6 6789 10000 0 0
サンプル出力
8 984 1
問題解決のためのコード
#include <cstdioを> int型のmain() { int型A、B、 一方(scanfの(" %のDの%のD "、A&、&B)=!EOF) { IF(== 0 && Bの== 0)BREAK ; INT = ANS 1。 ; //は、最終的な変数の初期値の結果を保存1。一方、(b!= 0)// bが0である場合、すなわち、バイナリ変換プロセスはのBを終了 { IF(Bの%2 == 1)// 現在のビットが1であり、変数ANSに2 ^ k倍を乗算することが必要です { ANS = *; ANSの%= 1000 ; // 最後の3桁を見つける } B / = 2 ; // Bは、2で割って * =; //は、すなわち1の時点から、次のビット重みを見つけます、2倍、4倍......の配列見つける %= 1000 ; // 3の後に見つける } // Bの二進値を算出しながら2 ^ k倍の計算中、および所望の乗法ANSに一部 のprintf(" %d個の\ N- " 、ANS); } 戻り 0 ; }