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

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

Вернуться   Форум программистов > C/C++ программирование > Qt и кроссплатформенное программирование С/С++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.05.2014, 21:07   #1
nobo
 
Регистрация: 18.10.2013
Сообщений: 6
По умолчанию изменить программу так, чтобы она выводила на экран таблицу факториалов от 0 до 15

кто поможет изменить код программы по этим пунктам:
Код:
#include<stdio.h>
int i=1;
unsigned long result;
unsigned long factorial(unsigned long f);
{
if (f==1 || f==0)
return 1;
printf("Step\t %d" , i);
i++;
printf("Result=%ld", result);
result=f*factorial(f-1);
return result;
}
void main(void)
{
int n;
printf("Enter n:%d",n);
scanf("%d",&n);
printf("%d!=%ld",n,factorial(n));
}
*изменить программу так, чтобы она выводила на экран таблицу факториалов от 0 до 15
*проверить работу программы
*составить программу вычисления факториала с использованием интенционного цикла.
*сравнить время работы рекурсивной и нерекурсивной программ

Последний раз редактировалось Stilet; 08.05.2014 в 11:18.
nobo вне форума Ответить с цитированием
Старый 07.05.2014, 21:31   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,707
По умолчанию

Код:
printf("Enter n:%d",n);
scanf("%d",&n);
вместо этого написать цикл фор, например. есть в каждом учебнике
p51x вне форума Ответить с цитированием
Старый 07.05.2014, 23:20   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

не исключено, что подвох ещё и в размерности..
если я правильно понимаю (смотрел тут)
Цитата:
Код:
unsigned long 	
4	
длинное целочисленное число без знака 	
От 0 до 4 294 967 295
а факториал 13! это уже 6 227 020 800
Serge_Bliznykov вне форума Ответить с цитированием
Старый 08.05.2014, 06:59   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,707
По умолчанию

Цитата:
не исключено, что подвох ещё и в размерности..
так у ТС одно из заданий
Цитата:
*проверить работу программы
p51x вне форума Ответить с цитированием
Старый 09.06.2014, 09:08   #5
MGrigorj
Новичок
Джуниор
 
Регистрация: 09.06.2014
Сообщений: 1
По умолчанию

вместо этого написать цикл фор, например. есть в каждом учебнике
MGrigorj вне форума Ответить с цитированием
Старый 09.06.2014, 10:20   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от MGrigorj Посмотреть сообщение
вместо этого написать цикл фор, например. есть в каждом учебнике
Плохо, когда не понимаешь, о чём идёт речь, но всё равно высказываешь своё "авторитетное" мнение.

Цикл FOR не поможет, т.к. проблема в том, что факториал очень быстро растущая функция, и разрядной сетки не будет хватать, тип данных unsigned long уже не вместит факториалы, начиная с 13!

Попробуйте найти факториал 15! с помощью своего цикла FOR и Вы поймете,
о каком подвохе идёт речь в даной теме.

p.s. теме больше месяца. не думаю, что автора темы эта проблема ещё интересует..
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
исправьте ошибке в этой программе так чтобы она работала как в задании: owert Паскаль, Turbo Pascal, PascalABC.NET 2 06.06.2013 17:02
Как изменить CopyPNG (внутри), чтобы она соответствовала Canvas.CopyRect? alextrof94 Общие вопросы Delphi 3 17.04.2013 03:58
Как изменить программу так, чтобы круг двигался не по прямой, а по какому - нибудь другому закону.Например,по какой-нибудь кривой kg250493 C++ Builder 2 24.11.2012 13:44
как изменить эту программу чтобы она заработала? Анастасия91 Visual C++ 6 13.12.2010 08:05
ПЕРЕДЕЛАЙТЕ ПРОГРАММУ ТАК, ЧТОБЫ ОНА НИКОГДА НЕ ВЫВОДИЛА БОЛЕЕ 10 ЧИСЕЛ В ОДНОЙ СТРОКЕ D_bl_M Общие вопросы C/C++ 6 05.06.2010 06:54