10
Июн
2015

Как найти сумму BigInteger?

Пожалуйста, подскажите, как же всё найти сумму цифр BigInteger? Или я что-то делаю не так?

public static void main(String[] args) {
    System.out.print("print variable x = ");
    Scanner in = new Scanner(System.in);
    int x = in.nextInt();
    if (x < 1) {
        throw new IllegalArgumentException("variable x suppose to be more than 0");
    }
    BigInteger fact = BigInteger.valueOf(1);
    for (int i = 2; i <= x; i++) {
        fact = fact.multiply(BigInteger.valueOf(i)) ;
    }
    System.out.println("fact is = " + fact);

    long sum = 0;
        do {
            sum = sum + (fact % 10);//здесь начинаются все проблемы т.к. тип BigInteger не поддаётся обычным арифметическим операторам
        }
        while ((fact /= 10) != 0);
    System.out.println("sum of factorial is = " + sum);
}

Источник: https://ru.stackoverflow.com/questions/429096/%D0%9A%D0%B0%D0%BA-%D0%BD%D0%B0%D0%B9%D1%82%D0%B8-%D1%81%D1%83%D0%BC%D0%BC%D1%83-biginteger

Share

Тебе может это понравится...