Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.05.2011, 21:31   #1
Aydan
 
Регистрация: 30.04.2011
Сообщений: 8
Стрелка факториал ( c рекурсивный функцией )

Код:
uses crt;
function faktorial(n:integer):integer;
begin
if n=0 then faktorial:=1
else
faktorial:=n*faktorial(n-1);
end;

var k:integer;
begin
writeln('Введите число ');
readln(k);
writeln('Факториал числа ',k,' равен ',Factorial(k));
end.
мой вопрос ->> почему так происходит?
1. Введите число
17
Факториал числа 17 равен -288522240

а как можно учитывать "-" Элемент??

2. Введите число
-12

как будет?
Aydan вне форума Ответить с цитированием
Старый 11.05.2011, 21:40   #2
MyLastHit
Очень суровый
Участник клуба
 
Аватар для MyLastHit
 
Регистрация: 17.12.2009
Сообщений: 1,988
По умолчанию

Цитата:
1. Введите число
17
Факториал числа 17 равен -288522240
Это называется переполнение. 17! = 3.55687428 × 10^14 явно выходит за пределы определения типа интежер.

Цитата:
2. Введите число
-12

как будет?
Вы на физмате учитесь? Если нет - вообще забудьте про факториал отриц. числа.
Ненавижу быть как все, но люблю, чтобы все были как я.

Последний раз редактировалось MyLastHit; 11.05.2011 в 21:44.
MyLastHit вне форума Ответить с цитированием
Старый 11.05.2011, 22:15   #3
Aydan
 
Регистрация: 30.04.2011
Сообщений: 8
По умолчанию

мне нужно факториал отрицательных чисел, то есть надо что в программе это видно было
например я так написала но не получилось правильной

Код:
uses crt;
function faktorial(n:integer):integer;
begin
if n=0 then faktorial:=1
else
faktorial:=n*faktorial(n-1);
end;
 
var k:integer;
begin
writeln('Введите число ');
readln(k);
if k<0 then 
writeln('Нельзя вычеслять фактариал из отрицательного числа. ');
writeln('Факториал числа ',k,' равен ',Factorial(k));
end.
А вот и я записываю код но не получается, это надо записать в функции ?? а так тоже не смогла, пожалуста помагите

Последний раз редактировалось Aydan; 11.05.2011 в 23:26.
Aydan вне форума Ответить с цитированием
Старый 12.05.2011, 00:19   #4
MyLastHit
Очень суровый
Участник клуба
 
Аватар для MyLastHit
 
Регистрация: 17.12.2009
Сообщений: 1,988
По умолчанию

Цитата:
мне нужно факториал отрицательных чисел
Значение данных факториалов не лежит в поле |R. Они лежат в комплексном поле. Определяется такой факториал с помощью выражения содержащего Гамма-функцию.
Просто отбрасывать наверное вам нужно отриц значения.

Можете искать факториалы от 0 до 9. Ну или через longint можно, тогда и 10! найти получится.
Ненавижу быть как все, но люблю, чтобы все были как я.

Последний раз редактировалось MyLastHit; 12.05.2011 в 00:23.
MyLastHit вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Рекурсивный поиск zumm Общие вопросы Delphi 7 01.11.2010 22:47
C# - Рекурсивный метод Ronnie Помощь студентам 2 10.06.2010 08:30
рекурсивный алгоритм. Nelson1992 Помощь студентам 9 21.03.2010 12:09
Рекурсивный алгоритм SVM Общие вопросы C/C++ 7 13.11.2009 09:24