Java

В чем смысл задачи? Решение не надо, кода не надо, просто хочу понять, что нужно сделать, заранее спасибо

Факториалом натурального числа n (обозначается n!) называется произведение всех натуральных чисел от 1 до n. Например, 4! = 1·2·3·4 = 24. Дано целое положительное число A. Необходимо найти ближайшее к A число, которое является точным факториалом какого-либо натурального числа. Если два точных факториала одинаково близки к A, нужно выбрать меньший из них. Например, для A = 15 нужно получить ответ 6, а для A = 20 – ответ 24.
1. Вводишь число A.
2. Находишь 2 соседних факториала P = (n-1)! и Q = n! (т. е. Q = P * n):
таких, что P <= A и Q >= A
3. Сравниваешь A - P и Q - A.
4. Выбираешь из P и Q значение, для которого вышеуказанная разность меньше.
5. Если разности равны - выбираешь P
Дмитрий Ремезков
Дмитрий Ремезков
83 006
Лучший ответ
Нужно аккуратно вычислять факториал до тех пор, пока не найдешь такой, который больше твоего числа. Предыдущий факториал тоже нужно запоминать все время.
Затем нужно выбрать тот из них (назовем его f1), для которого справедливо |f1 - a| < |f2 - a|. Если |f1 - a| = |f2 - a| то такой, что f1 < f2.
Сведи вопрос к такому. Даны два числа. Какое из них ближе к третьему (тоже заданному)?
Сергей Струц
Сергей Струц
89 294
Идея решения задачи проста. Все решение можно записать в одну строку, если вы умеете писать программы на JavaScript. Делюсь идеей, надеясь, что в комментариях к ответу увижу ваш код.
1)Вам дали число A
2)Вы берете число d=2
3)Если A<=d, то задача решена
4)Нет не меньше, тогда A=A/d, d=d+1 и возвращаемся к пункту 3.
5)Здесь наш цикл завершился. Печатаем результат и не забываем, что A в самом начале алгоритма должно преобразовано из integer в real.
Повторюсь. Исходный код решения можно уместить в одну строку программы. Удачи. ;-)
Basik Dauka
Basik Dauka
74 632
Я думаю, что нужно задать А и найти минимальное abs(А-n!) перебирая n и вычисляя n!
АГ
Азат Гафаров
83 844
условие задачи смысл расписываает.
Дано число, например 100
есть результаты значений факториалов они всегда константы.
1! = 1, 2! = 1*2=2, 3! = 6, 4! = 24, 5!=120
находим область между двумя фракталами в ккоторое попадает число 100 - это 4! и 5! и далее сравниваем какой путь до а от факториала будет короче, то есть если 100-4! будет меньше чем 5!-100, тогда ответ 4!, в противном случае 5!
Мишаня Деникин
Мишаня Деникин
10 755