старшее из двух значений
выполняется только с помощью математических операций (+ * -% / и pow)
Когда оба значения> 0, найдите 2 коэффициента a /б, б / а.Один из факторов будет 0 (при условии, что типы являются целыми числами), а другой 1 или более.(Или оба коэффициента равны 1, если значения одинаковы).
Выполнить
pow(one_or_more, 0); // 1 (v2 > v1)
pow(0, one_or_more); // 0 (v1 > v2)
pow(1,1); // 1 (same)
Используйте 0,1 для индексации ответа.
Пример
int a[2] = { value1, value2 };
int index = pow(a[1]/a[0], a[0]/a[1]);
printf("%d\n", a[index]);
// or "to print the maximum option"
printf("%d\n", index);
Допустимое использование pow()
намекает на этот подход.
Побочное преимущество: переполнения нет, если значения> 0. -,+,*
имеют тенденцию открывать дверь для возможности переполнения, и этого избегают.
Обратная сторона: проблема со значениями <= 0. </p>