Official
A - kcal Editorial by KoD
\(1\) mL あたり \(A/100\) kcal であるので、答えは \(AB / 100\) となります。 以下のようなコードで正解することができます (C++) :
#include <iostream>
using namespace std;
int main() {
int A, B;
cin >> A >> B;
cout << A * B / 100.0 << '\n';
return 0;
}
ここで、「100 で割る」という操作を A * B / 100
と書いてしまうと、これは整数同士の演算であるので、切り捨ての除算となります。例えば 25 * 25 / 100
は 6.25
ではなく 6
となってしまいます。100.0
は double 型であると解釈されるので、実数の演算となります。
明示的に double 型にキャストすることも可能です :
#include <iostream>
using namespace std;
int main() {
int A, B;
cin >> A >> B;
cout << ((double) (A * B)) / 100 << '\n';
return 0;
}
なお、この問題の制約では上記のコードで正解を得られますが、\(A = 12345, B = 98765\) を入力として与えると、1.21925e+07
と出力されてしまいます。std::fixed
や std::setprecision
を用いることで正確な表記になります。
#include <iostream>
#include <iomanip>
using namespace std;
int main() {
int A, B;
cin >> A >> B;
// std::fixed -> 固定小数点で出力することを指定
// std::setprecision(int n) -> 小数点以下 n 桁で出力することを指定
cout << fixed << setprecision(2);
cout << A * B / 100.0 << '\n';
return 0;
}
posted:
last update: