Форум программистов, компьютерный форум, киберфорум
Java для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
2 / 2 / 2
Регистрация: 02.03.2016
Сообщений: 75

BigInteger и его substract

12.12.2019, 05:36. Показов 790. Ответов 2

Студворк — интернет-сервис помощи студентам
Спасибо, что открыл мой топик! Пытаюсь решить факториал с помощью рекурсии и BigInteger, но почему-то ругается на .substract(), не могу найти и устранить причину. Ниже прикладываю текст ошибки.

Что тут нужно изменить, чтобы оно заработало?
Буду очень благодарен за любую помощь!


Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
package com.khuzha;
import java.math.*;
import java.util.Scanner;
 
public class Main {
 
    public static void main(String[] args) {
        Scanner keyboard = new Scanner(System.in);
 
        System.out.println("Введите число, факториал которого надо найти:");
        BigInteger x = keyboard.nextBigInteger();
 
        System.out.println(fact(x));
    }
 
    public static BigInteger fact (BigInteger x) {
        if (BigInteger.ZERO.compareTo(x) + BigInteger.ONE.compareTo(x) == 0) {
            return BigInteger.ONE;
        } else {
            return x.multiply(fact(x.subtract(BigInteger.ONE)));
        }
    }
}
Exception in thread "main" java.lang.StackOverflowError
at java.base/java.math.BigInteger.subtract(BigInteger .java:1511)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.12.2019, 05:36
Ответы с готовыми решениями:

По числу Фибоначи найти его номер в последовательности Фибоначи в BigInteger
По числу Фибоначи найти его номер в последовательности Фибоначи в BigInteger. Написал для int, но мне нужно в BigInteger. Помогите...

Метод BigInteger.GreatestCommonDivisor (BigInteger, BigInteger)
Как использовать в C# windowsforms метод BigInteger.GreatestCommonDivisor (BigInteger, BigInteger)? Пример кода.

Как делить одно число BigInteger на другое BigInteger, при чем не теряя остаток
Помогите пожалуйста. Надо поделить одно число BigInteger на другое, при чем в результате сохранить весь остаток

2
 Аватар для Goongala
1022 / 562 / 185
Регистрация: 18.08.2013
Сообщений: 2,027
Записей в блоге: 2
12.12.2019, 06:58
Java
1
2
3
4
5
6
    public static BigInteger fact(BigInteger x) {
        if (x.compareTo(BigInteger.ONE) <= 0) {
            return BigInteger.ONE;
        }
        return x.multiply(fact(x.subtract(BigInteger.ONE)));
    }
1
485 / 411 / 126
Регистрация: 23.05.2016
Сообщений: 1,653
12.12.2019, 10:56
Цитата Сообщение от OneDev Посмотреть сообщение
(BigInteger.ZERO.compareTo(x) + BigInteger.ONE.compareTo(x) == 0)
при каком х это условие будет истинным?

СтекОверфлоу прямо указывает, что из рекурсии вы не выходите, полностью забиваете стек вызовами, затем завершение по ошибке.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.12.2019, 10:56
Помогаю со студенческими работами здесь

Бинарное возведение в степень числа типа BigInteger в степень Biginteger
Здравствуйте. Не могу реализовать алгоритм бинарного возведения в степень. Есть 2 экземпляра BigInteger p,q. По методу Pow не...

BigInteger в степени BigInteger
Возможно ли возвести переменную типа BigInteger в такую же? Метод ModPow отпадает из-за необходимости mod'a. Спасибо.

BigInteger в степени BigInteger
Имеются переменные y,r,s,p типа BigInteger. Необходимо вычислить (y^r*r^s) % p. Какие предложения по поводу вычисления данной формулы? ...

A * B, BigInteger
Во входном файле INPUT.TXT записаны целые неотрицательные числа A и B по одному в строке (A &lt; 10^100, B &lt;= 10000). В выходной файл...

BigInteger в For
Столкнулся с проблемой того, что в цикле for нельзя использовать BigInteger, не смотря на то, что это целочисленный тип. Кто-нибудь знает...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru