Вот мой простой код.
int num1, num2;
cin >> num1 >> num2;
int num3, num4;
cin >> num3 >> num4;
double result1 = static_cast<double>(num1) / num2;
double result2 = static_cast<double>(num3) / num4;
cout.setf(ios::boolalpha);
cout << (result1 == result2) << endl;
Ввод:
1 3
2 6
Выход:
true
Итак, я хочу знать, что
static_cast<double>(a) / b == static_cast<double>(k * a) / (k * b)
всегда верно?
, если нет,
int num1, num2;
cin >> num1 >> num2;
int num3, num4;
cin >> num3 >> num4;
int gcd1 = gcd(num1, num2);
int gcd2 = gcd(num3, num4);
double result1 = static_cast<double>(num1 / gcd1) / (num2 / gcd1);
double result2 = static_cast<double>(num3 / gcd2) / (num4 / gcd2);
cout.setf(ios::boolalpha);
cout << (result1 == result2) << endl;
всегда печатается true
на входе a
, b
, k * a
, k * b
на номер1, номер2, номер3, номер4?