N Factorial

Здравейте,
може ли да ми кажете къде бъркам с тази задача

N Factorial

Description

Write a method that multiplies a number represented as an array of digits by a given integer number. Write a program to calculate N! .

Input

  • On the first line you will receive the number N

Output

  • Print N!

Sample tests

Input Output
5 120

Това е кода до който стигнах на Java.

    Scanner scanner = new Scanner(System.in);
    int input = scanner.nextInt();
    int[] arr = new int[input];
    long output = 1L;

    for (int i = 0; i < input; i++) {
        arr[i] = i + 1;
        output *= arr[i];
    }
    System.out.println(output);
}

}

Пробвах и този вариант

    Scanner scanner = new Scanner(System.in);
    int input = scanner.nextInt();
    long output = 1L;

    for (int i = 1; i <= input; i++) {

        output *= i;
    }
    System.out.println(output);

При ниски стойности на input-a работят и двата варианта, но при високи се чупят.
Поздрави,
Иван.

Здравей,
никъде не бъркаш, но както си забелязал вече, с по-големи числа се изчерпва и long.
Пренапиши втория вариант (като по-простичък) с BigInteger. Погледни как работи точно, но основно разликата е, че при него математическите операции се изписват с думи - multiply, devide, add … :slight_smile:

Мерси, стана!

1 Like