Привести дроби к общему знаменателю. - Pascal
Формулировка задачи:
Здравствуйте, помогите пожалуйста составить прогу\процедуру, которая приводила бы n число совершенно рандомных дробей к наименьшему из возможных общему знаменателю.
Решение задачи: «Привести дроби к общему знаменателю.»
textual
Листинг программы
- int Nok(int* Znamenateli,int KolichestvoZnamenatelei){
- int max = Znamenateli[0];
- for(int i=0;i<kolichestvoznamenatelei;i++){ if="" (max<znamenateli[i])="" max="Znamenateli[i];" }="" int="" nok="max;" mnojitel="1;" bool="" noknaiden="true;" while(1){="" nok*="mnojitel;" for(int="" i="0;i<KolichestvoZnamenatelei;i++){" if((nok%znamenateli[i])!="0)" if(noknaiden)="" return="" nok;="" mnojitel++;="" }<="" code=""></kolichestvoznamenatelei;i++){>
Объяснение кода листинга программы
- Входные данные:
Znamenateli
- массив дробей, которые нужно привести к общему знаменателюKolichestvoZnamenatelei
- количество дробей в массивеZnamenateli
max
- переменная для хранения максимального знаменателяnok
- переменная для хранения результата (общего знаменателя)mnojitel
- переменная для хранения множителяnoknaiden
- флаг для проверки, было ли найдено кратное
- Инициализация:
max
устанавливается равным первому значению в массивеZnamenateli
nok
устанавливается равнымmax
mnojitel
устанавливается равным 1noknaiden
устанавливается равнымtrue
- Основной цикл:
- Перебираем все значения в массиве
Znamenateli
- Если
max
меньше текущего значения в массиве, то обновляемmax
- Если
nok
делится на текущее значение в массиве без остатка иnoknaiden
равноtrue
, то возвращаемnok
и увеличиваемmnojitel
на 1
- Перебираем все значения в массиве
- Дополнительный цикл:
- Перебираем все значения в массиве
Znamenateli
- Если
nok
делится на текущее значение в массиве без остатка, то обновляемnoknaiden
наfalse
- Перебираем все значения в массиве
- Выходные данные:
- Возвращаем
nok
как результат работы функции
- Возвращаем
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д