Official
A - kcal Editorial
by
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:
