前提・実現したいこと
AtCoderのABC081,B問題を解いています。
内容を要約すると、与えられたN個の整数に対し「全て偶数なら2で割る」という操作が何回行えるかを出力する、というものです。
入力は
N ←(整数の個数)
A1, A2, … AN ←(与えられる整数)
で与えられています。
発生している問題・エラーメッセージ
以下のコードであれば正しく出力値を得られるのですが、途中のfor分などでの数値の変化を確認するために入れていた(※)の行を削除すると、どんな入力値に対しても出力値が0となってしまいました。
該当のソースコード
C++
1#include <bits/stdc++.h> 2using namespace std; 3 4int main(){ 5 int n, count, ans; 6 cin >> n; 7 8 vector<int> a(n); 9 for(int i = 0; i < n; i++){ 10 cin >> a.at(i); 11 } 12 13 for(int i = 0; i < n; i++){ 14 if((a.at(i)%2) == 0){ 15 count++; 16 } 17 if(n == count){ 18 for(int i = 0; i < n; i++){ 19 a.at(i) = (a.at(i)) / 2; 20 cout << a.at(i) << endl; //(※) 21 } 22 ans++; 23 count = 0; 24 i = -1; 25 continue; 26 } 27 } 28 29 cout << ans << endl; 30}
試したこと
変数名を変更するなどしてみましたが、特に改善は見られませんでした。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/03/16 18:37