けんちょんの競プロ精進記録

競プロの精進記録や小ネタを書いていきます

AtCoder ABC 221 A - Seismic magnitude scales (灰色, 100 点)

for 文を用いるのが楽だと思う。

問題概要

マグニチュード  A の地震は、マグニチュード  B の地震の何倍の強さか?

(1 上がると 32 倍となる)

制約

  •  3 \le B \le A \le 9

解法

 32 A - B 回かけた値を求めればよい (つまり  32^{A-B})。

これを求めるためには、関数 pow() を用いるか、for 文を用いればよい。具体的には、答えを格納する変数を res としたとき

  • 初期状態では res = 1 としておく
  • for 文を用いて、 A - B 回、res *= 32 とする

というようにすればよい。

コード

#include <bits/stdc++.h>
using namespace std;

int main() {
    int A, B;
    cin >> A >> B;
    
    int res = 1;
    for (int i = 0; i < A - B; ++i) {
        res *= 32;
    }
    cout << res << endl;
}