Найдите наибольшую правильную несократимую дробь, у которой сумма числителя и знаменателя равна n. Подскажите программу на c++

13 Окт 2019 в 19:40
290 +1
0
Ответы
1

Для нахождения наибольшей правильной несократимой дроби с суммой числителя и знаменателя равной n, можно воспользоваться следующим алгоритмом:

Завести переменную maxFraction со значением 0.Пройти в цикле от 1 до n//2 (т.к. мы ищем наибольшую дробь, числитель и знаменатель которой могут быть равны только до n//2).Для каждого числа i вычислить числитель как n - i, и знаменатель как i.Найти НОД числителя и знаменателя с помощью алгоритма Евклида.Если числитель делится на НОД, и знаменатель делится на НОД, то полученная дробь является несократимой.Если текущая дробь больше maxFraction, обновить maxFraction.

Ниже приведен пример программы на C++, реализующей данный алгоритм:

#include <iostream>
using namespace std;
int gcd(int a, int b) {
if (a == 0)
return b;
return gcd(b % a, a);
}
void findMaxFraction(int n, int &numerator, int &denominator) {
int maxFraction = 0;
for (int i = 1; i <= n / 2; i++) {
int numer = n - i;
int denom = i;
int commonDivisor = gcd(numer, denom);
if (numer % commonDivisor == 0 && denom % commonDivisor == 0) {
if (denom > maxFraction) {
maxFraction = denom;
numerator = numer;
denominator = denom;
}
}
}
}
int main() {
int n;
cout << "Enter the sum of numerator and denominator: ";
cin >> n;
int numerator, denominator;
findMaxFraction(n, numerator, denominator);
cout << "The largest irreducible fraction with numerator + denominator = " << n << " is: " << numerator << "/" << denominator << endl;
return 0;
}

Вы можете скомпилировать и запустить эту программу на своем компьютере, чтобы найти наибольшую правильную несократимую дробь с суммой числителя и знаменателя, равной n.

19 Апр 2024 в 11:31
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир