回答
場合分けをします.
実は解説と違う式になっているような気がしますが….
XかYかどちらかで,多く作れる方を選びましょう….
ただ,C++だと出力桁数に注意する必要があります.
参考:
http://www2.ee.knct.ac.jp/el/E2/L210/no2/shoshikisitei.html
でここでなぜC++の話をしているかというと,少し練習を始めたからです….
頑張って覚えましょう….
というわけでこんなかんじになります.
#include <iostream> #include <iomanip> #include <cstdio> #include <vector> #include <queue> #include <map> #include <set> #include <string> #include <algorithm> #include <functional> using namespace std; #define FOR(i,a,b) for (int i=(a);i<(b);i++) #define RFOR(i,a,b) for (int i=(b)-1;i>=(a);i--) #define REP(i,n) for (int i=0;i<(n);i++) #define RREP(i,n) for (int i=(n)-1;i>=0;i--) #define INF 1<<30 #define MP make_pair #define mp make_pair #define pb push_back #define PB push_back #define DEBUG(x) cout<<#x<<": "<<x<<endl #define ll long long #define ull unsigned long long int main(){ cin.tie(0); ios::sync_with_stdio(false); double a, b, x, y; cin >> a >> b >> x >> y; double res = 0.0; if(x * b >= y * a) { res = y + y * a / b; } else { res = x + x * b / a; } cout << setprecision(20) << res << endl; }
ruby だとこんなかんじで.
a, b, x, y = gets.split(" ").map(&:to_f) p x * b >= y * a ? y + y * a / b : x + x * b / a