A - 足し算 | AtCoder Beginner Contest 021
A - 足し算 | AtCoder Beginner Contest 021
解法
同じ2の累乗数をいくつ使ってもいいとあるのでこの問題の範囲では1をN個とすればよいが,各2の累乗数の使用回数を1回以下と考えると2の累乗数の和でNを表すというのはNを2進数表記することなので今回はその方針で解いた.
コーナーケース検討
N<=10なので4bitあれば表現できる.
実装
REP(i, 4) {
if (N & 1 << i){
count++;
}
}
cout << count << endl;
REP(i, 4) {
if (N & 1 << i){
cout << (1 << i) << endl;
}
}
データ構造・アルゴリズム
- bit演算