前提・実現したいこと
AtCoderのabc001_2の問題を問いています。
以下のプログラムを提出すると、いくつかのテストケースを通過できません。
入力例のものは以下の回答で通過できました。
テストケースの内容がわからないので、どこをどう修正していいのかわかりません。
お教えいただけると助かります。
問題文の貼り付けがうまくできないので、お手数ですが以下のリンクからご確認ください。
https://atcoder.jp/contests/abc001/tasks/abc001_2
該当のソースコード
c++
1 #include <bits/stdc++.h> 2 using namespace std; 3 4 int main() { 5 double m; 6 cin >> m; 7 m /= 1000; 8 string VV; 9 int tmp; 10 11 if(m < 0.1) { 12 VV = "00"; 13 } else if(m >= 0.1 && m <= 5) { 14 tmp = m * 10; 15 if(m < 10) { 16 VV = '0' + to_string(tmp); 17 } else { 18 VV = to_string(tmp); 19 } 20 } else if(m >= 6 && m <= 30) { 21 tmp = m + 50; 22 VV = to_string(tmp); 23 } else if(m >= 35 && m <= 70) { 24 tmp = ((m - 30) / 5) + 80; 25 VV = to_string(tmp); 26 } else { 27 VV = "89"; 28 } 29 30 cout << VV << endl; 31 32 return 0; 33 }
もんだいには
0.1km 以上 5km 以下
とあるが。
1T2R3M4さん、返信ありがとうございます。
ご指摘いただいた条件分を「m >= 0.1 && m <= 5」に変更しましたが、通過数に変化ありませんでした。
「tmp = ((m - 30) / 5) + 80;」の下にVVに値を入れる文を書いてなかったので、それを追加しました。
これで通過数は増えましたが、全通過にならない状況です。
何か他にお気づきの点がありましたら、よろしくお願いいたします。
if(m < 10) {
だとm=1.5→tmp=15→VV=015
はpassするのだろうか。
1T2R3M4さん、返信ありがとうございます。
if(tmp < 10) { に変更したら、全通過できました。
それは良かったです。
解決したのならば、自己回答をつけて質問をクローズしてくださいね。
ひとつ前の質問もクローズした方が今後のために良いかもです。
回答1件
あなたの回答
tips
プレビュー