|
0 / 0 / 0
Регистрация: 26.06.2012
Сообщений: 14
|
|
Вычислить факториал натурального числа n из отрезка [1;20]26.06.2012, 23:20. Показов 11041. Ответов 26
Метки нет (Все метки)
Создайте программу, вычисляющую факториал натурального числа n из отрезка [1;20], которое пользователь введёт с клавиатуры. Если число будет введено некорректно, то программа должна сообщить об ошибке. Например, если пользователь ввёл 4, то программа должна вывести 24; если пользователь ввёл -1, то программа должна вывести «ошибка при вводе».
0
|
|
| 26.06.2012, 23:20 | |
|
Ответы с готовыми решениями:
26
Вычислить факториал натурального числа
Факториал натурального числа |
|
348 / 269 / 128
Регистрация: 14.11.2010
Сообщений: 482
|
||||||
| 27.06.2012, 00:21 | ||||||
1
|
||||||
|
187 / 180 / 25
Регистрация: 27.01.2012
Сообщений: 1,335
|
||
| 27.06.2012, 12:29 | ||
|
0
|
||
|
|
|||||||
| 27.06.2012, 13:02 | |||||||
0
|
|||||||
|
|
||
| 27.06.2012, 13:11 | ||
|
Хотя должен отметить что величина LONG_MAX = 2147483647 будет меньше 17! а следовательно для данного алгоритма либо использовать long long либо для простоты использовать для переменных
0
|
||
|
|
||||||
| 27.06.2012, 13:21 | ||||||
|
Немного подумав пришёл к следующим типам
int value; unsigned long i, fact; даже странно что изначально именно так и не сделал ![]()
0
|
||||||
|
2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
|
|
| 27.06.2012, 13:31 | |
|
Но считает-то все равно неверно....
20! = 2432902008176640000
0
|
|
|
|
|||||||
| 27.06.2012, 14:12 | |||||||
|
Код
Поэтому чтобы не ломать голову дал тип double i, fact; и всё стало норм считаться. А вот сбой на 15! и 16! для unsigned long мне пока не понятен
0
|
|||||||
|
68 / 68 / 18
Регистрация: 03.06.2012
Сообщений: 176
|
||
| 27.06.2012, 14:18 | ||
|
Напиши отдельную функцию, которая считает факториал какого-то числа.
А потом уже в цикле проходи все числа от 1 до 20, используя эту функцию ![]() Добавлено через 1 минуту
0
|
||
|
|
|||||||||||||
| 27.06.2012, 14:27 | |||||||||||||
|
g-h,
, суть в том что при 15! и 16! наступает непонятная мне ситуация которая приводит к некорректному расчёту.Вот рекурсивный способ расчёта факториала
Добавлено через 4 минуты Допустим тебе надо посчитать факторил наших 20-ти + вывести результаты промежуточных вычислений, положим используешь указанную вверху рекурсивную функцию расчёта. Как думаешь что быстрее 20 раз вызвать функцию, которая сама по сути является циклом от 1-го до конкретного числового значения. Либо же за один проход получить все значения обходясь без вызовов и прочего. Дословно вот схема с вызовом функции расчёта
0
|
|||||||||||||
|
Форумчанин
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
|
||||||
| 27.06.2012, 14:38 | ||||||
|
-=ЮрА=-, unsigned long long i, fact;
С 11 стандартом long long int существует. А я бы решал так:
Мне кажется неверный результат при 15 - 16 из-за перераспределения памяти. Возможно, дальше 15 идет неверный результат.
0
|
||||||
|
68 / 68 / 18
Регистрация: 03.06.2012
Сообщений: 176
|
|
| 27.06.2012, 14:42 | |
|
Сейчас ради любопытства решил подсчитать все факториала от 0 до 30. И вот что получилось! То есть уже при 14 результат получается неправильный
0
|
|
|
|
||
| 27.06.2012, 14:47 | ||
|
ULONG_MAX = 4294967295 12 ! = 479001600 13 ! = 6227020800 Т.е. на 13-ти уже выскакиваем за пределы ULONG_MAX от того и некоректный подсчёт.
0
|
||
|
Форумчанин
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
|
||
| 27.06.2012, 14:50 | ||
|
Можно смело брать твой код, дописывать в объявлении еще одно long и юзать на здоровье
0
|
||
|
68 / 68 / 18
Регистрация: 03.06.2012
Сообщений: 176
|
||
| 27.06.2012, 14:50 | ||
Это мое мнение и спорить не хочу. ![]() Вот еще допишу. Может быть скорость в играх нужна. Тогда другое дело.
0
|
||
|
|
||||||||
| 27.06.2012, 14:59 | ||||||||
1
|
||||||||
|
68 / 68 / 18
Регистрация: 03.06.2012
Сообщений: 176
|
|
| 27.06.2012, 15:01 | |
|
0
|
|
|
Форумчанин
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
|
||||||
| 27.06.2012, 15:03 | ||||||
|
-=ЮрА=-, все равно далеко уйти не выйдет,
0
|
||||||
|
Форумчанин
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
|
|
| 27.06.2012, 15:04 | |
|
1
|
|
|
68 / 68 / 18
Регистрация: 03.06.2012
Сообщений: 176
|
||||||
| 27.06.2012, 15:12 | ||||||
|
А почему тогда у меня по-другому получается? Самое большое это 13! и все? Вот эту функцию использую
Непонятно
0
|
||||||
| 27.06.2012, 15:12 | |
|
Помогаю со студенческими работами здесь
20
Факториал натурального числа
Известен факториал f некоторого натурального числа. Найти это число Напишите функцию, которая вычисляет факториал для заданного натурального числа Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога
Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
|