Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Технологии > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 10.01.2018, 23:31   #1
Jihad
Новичок
 
Регистрация: 10.01.2018
Сообщений: 1
Репутация: 10
По умолчанию Помогите допилить рекурсивный факториал к ноду

Код:

Uses HOD,crt;
type mas=array[1..100] of integer;
var a:mas; max,min,n,i,d:integer;
factorial: longint;

begin
 writeln ('Введите размероность массива');
 read (n);
 writeln ('Введите элементы массива');
 for i:=1 to n do
   readln (a[i]);
begin
min:=a[1];
for i:=2 to n do
  begin
     if min>a[i] then
       min:=a[i];
  end;
begin
max:=a[1];
for i:=2 to n do
  begin
     if max<a[i] then
       max:=a[i];
  end;
  writeln ('        ');
writeln (nod(min,max));
end;
end;
end.

Модуль:

Код:

unit HOD;
interface
function Nod (a,b:integer):integer;
implementation
function Nod (a,b:integer):integer;
begin
if a=b then Nod:=a else if a>b then Nod:=Nod(a-b ,b)
else Nod:=Nod(a, b-a);
end;
end.

Архив с прогой вложен
Условие:
Найти НОД максимального и минимального элементов массива. Найдите факториал найденного значения НОД.

Нужна процедура нахождения факториала найденного значения НОД

_____
Код программы нужно выделять (форматировать) тегами [CODE] (читать FAQ)
Модератор
Вложения
Тип файла: zip Архив ZIP - WinRAR.zip (729 байт, 1 просмотров)

Последний раз редактировалось Serge_Bliznykov; 11.01.2018 в 11:28. Причина: Неполность содержания
Jihad вне форума   Ответить с цитированием
Старый 11.01.2018, 11:32   #2
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 24,508
Репутация: 5308
По умолчанию

ужас. вы код форматировать не пробовали? на вскидку, там с begin не порядок.


Цитата:
Сообщение от Jihad Посмотреть сообщение
Нужна процедура нахождения факториала найденного значения НОД
а рекурсия зачем? факториал прекрасно находится через умножение в цикле!

впрочем, хочется рекурсию?
получите и распишитесь:
http://www.programmersforum.ru/showthread.php?t=151191

только учтите, что факториал - это чрезвычайно быстро растущая функция, числа должны быть небольшие, иначе будет переполнение (число не войдёт в размерность integer)
Serge_Bliznykov вне форума   Ответить с цитированием
Старый 11.01.2018, 13:16   #3
digitalis
Профессионал
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Адрес: Минск
Сообщений: 1,034
Репутация: 392
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
числа должны быть небольшие, иначе будет переполнение (число не войдёт в размерность integer)
А мы их переведем в extended, и пусть себе вычисляются

Последний раз редактировалось digitalis; 11.01.2018 в 21:38.
digitalis вне форума   Ответить с цитированием
Старый 11.01.2018, 14:34   #4
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 24,508
Репутация: 5308
По умолчанию

Цитата:
Сообщение от digitalis Посмотреть сообщение
А мы их переведем в extended, и пусть себе вычисляются
да ну? всё так просто?
Напомните, чему равен факториал 3000 (3000!= ???) ?
а 100000! ?

а во вторых, даже уже 20! Вы не получите точно, а только приблизительно.

не, я не спорю, вполне есть задачи, где даже приблизительного значения достаточно. Но это не всегда так.
Serge_Bliznykov вне форума   Ответить с цитированием
Старый 11.01.2018, 17:05   #5
Black Fregat
Программист
Профессионал
 
Аватар для Black Fregat
 
Регистрация: 23.06.2009
Сообщений: 1,070
Репутация: 754
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
Напомните, чему равен факториал 3000 (3000!= ???) ?
Ага, сейчас выложу Все 9131 знака..
Кстати, наступал на грабли, когда Python факториал посчитал, а вот дробно делить его отказался:
Код:

OverflowError: integer division result too large for a float

Black Fregat на форуме   Ответить с цитированием
Старый 11.01.2018, 21:42   #6
digitalis
Профессионал
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Адрес: Минск
Сообщений: 1,034
Репутация: 392
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
Напомните, чему равен факториал 3000 (3000!= ???) ?
Таких факториалов не бывает, потому что шахматных клеток всего 64, а карт в преферансе и того вполовину меньше.
digitalis вне форума   Ответить с цитированием
Старый 12.01.2018, 00:08   #7
Black Fregat
Программист
Профессионал
 
Аватар для Black Fregat
 
Регистрация: 23.06.2009
Сообщений: 1,070
Репутация: 754
По умолчанию

Цитата:
Сообщение от digitalis Посмотреть сообщение
а карт в преферансе и того вполовину меньше
А у вас там в Минске что играют? Классику? Ленинград? Сочи?
Black Fregat на форуме   Ответить с цитированием
Старый 12.01.2018, 12:15   #8
digitalis
Профессионал
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Адрес: Минск
Сообщений: 1,034
Репутация: 392
По умолчанию

Щас давно не играю в реале, только на компе - партнеры кто затерялся, кто уже умер... В пору активности наша компания предпочитала спокойную интеллигентную ленинградку, в студенческие времена писали сочинку .
Модер, sorry for offtopic

Последний раз редактировалось digitalis; 12.01.2018 в 22:19.
digitalis вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[РЕШЕНО][Python] факториал, Фибоначчи: в ходе выполнения в цикле все последующие значения факториалов перемножаются с предыдущими, а хочу чтоб выводился факториал конкретного числа Staniislav Помощь студентам 2 20.08.2017 00:57
поиск маленькой картинки в большой. Помогите допилить)))) Михаил22042016 Общие вопросы Delphi 2 11.05.2016 08:16
Помогите допилить скрипт SergeySS PHP 2 06.08.2014 16:17
Вычислить факториал числа п. Факториал числа представить в виде целочисленного массива десятичных цифр. M1kefly Общие вопросы C/C++ 1 07.07.2013 21:00
факториал ( c рекурсивный функцией ) Aydan Паскаль 3 12.05.2011 00:19


20:40.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru