以下の内容はhttps://drken1215.hatenablog.com/entry/2024/07/27/124247より取得しました。


AtCoder ABC 256 A - 2^N (7Q, 灰色, 100 点)

for 文で求めてもいいし、1 << N というようにビットシフト演算子を用いても解ける!

問題概要

0 以上の整数  N が与えられる。

 2^{N} の値を求めよ。

制約

  •  0 \le N \le 30

解法 (1):for

 2^{N} は「 2 N 回かけたもの」です。 N 回かける処理は for 文で実装できます。

注意したいのは初期値です。初期値は「0 回かけた状態の値」を入れます。2 を 0 回かけた状態の値 (すなわち  2^{0}) は 1 なので、初期値は 1 とします。

コード

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

int main() {
    int N;
    cin >> N;
    
    int res = 1;
    for (int i = 0; i < N; ++i) res *= 2;
    cout << res << endl;
}

 

解法 (2):ビットシフト演算子を使う

ここでは理屈は抜きにします。 2^{N} とは、実は

1 を  N 回、左にビットシフトしたもの

ともみなせます。したがって、1 << N と書けます。

コード

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

int main() {
    int N;
    cin >> N;
    cout << (1 << N) << endl;
}



以上の内容はhttps://drken1215.hatenablog.com/entry/2024/07/27/124247より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14