Atcoder初心者です
発生している問題・エラーメッセージ
Atcoderの ABC081B - Shift onlyの問題で
C++
1A.at(i) % (int)pow(2,count+1) == 1
と偶奇の条件分岐をしているのですが正しく判定されません.
該当のソースコード
C++
1#include <bits/stdc++.h> 2using namespace std; 3 4int main() { 5 int N; 6 cin >> N; 7 vector<int> A(N); 8 for (int i = 0 ; i < N ; i++) { 9 cin >> A.at(i); 10 } 11 int count =0; 12 while (true) { 13 bool even = true; 14 for (int i = 0 ; i < N ; i++ ) { 15 if (A.at(i) % (int)pow(2,count+1) == 1) { 16 even = false; 17 } 18 } 19 if (even == true) { 20 count++; 21 } 22 if (even == false){ 23 break; 24 } 25} 26cout << count << endl; 27}
(int)pow(2,count+1)
で2の冪乗をint型で返しているはずですが上手く判定されません.原因がおわかりの方いらっしゃいましたらご教授いただけると幸いです.よろしくお願いいたします.
回答1件
あなたの回答
tips
プレビュー