- 締切済み
c++について
色が [青] [赤] [赤] [白] [白] [青]が繰り返しに並んでいるとき左から100番目の時の色を求めたいのですがよく分かりません。今はこんな感じで考えてます。配列の中身を何回も数えるというやり方が分かりません!!どなたか教えていただけますでしょうか。 vector<string>s{青赤赤白白青}; int cnt=0; for(auto it=s.begin();it!=s.end();it++,cnt) { if(cnt==100)//100番目ならその色を抜き出す { cout<<*it<<endl; } }
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- asuncion
- ベストアンサー率33% (2127/6290)
回答No.3
え? >[青]0 >[赤]1 >[赤]2 >[白]3 >[白]4 ←つまりこれが、答え >[青]5 [白]3 こっちじゃないの?同じ白だけど。
- AsarKingChang
- ベストアンサー率46% (3467/7474)
回答No.2
- AsarKingChang
- ベストアンサー率46% (3467/7474)
回答No.1
そんなことをしなくてもOKですよ。 [青] [赤] [赤] [白] [白] [青] の「数」は変わらないのだから、 合計6個 つまり、 int ans=100%6; ←4が帰ります。 これを0オリジンで、4番目(4個目ではなく) [青]0 [赤]1 [赤]2 [白]3 [白]4 ←つまりこれが、答え [青]5 ループは不要です。 元の素材数が変化しないので、1度で求められますから。
お礼
ありがとうございます、解を求めることができました!!