Popis problému
Celý popis zadania sa nacháza – Hackerrank.
Riešenie
Nutné vypočítať faktoriál. Dať si pozor, či programovací jazyk podporuje veľké čísla.
Vytvoril som riešenie v týchto programovacích jazykoch
Všetky riešenia sú dostupné aj na mojom GitHub profile.
Scala
1 2 3 4 5 6 7 8 9 10 |
object ExtraLongFactorials extends App { def factorial(n: BigInt): BigInt = { if(n < 1) 1 else n * factorial(n - 1) } val n = io.Source.stdin.bufferedReader().readLine().toInt; println(factorial(n)) } |
Java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
import java.math.BigInteger; import java.util.Scanner; public class ExtraLongFactorials { public static void main(String[] args) { Scanner stdin = new Scanner(System.in); BigInteger n = stdin.nextBigInteger(); System.out.println(factorial(n)); } private static BigInteger factorial(BigInteger n) { if(n.compareTo(BigInteger.ONE) <= 0) { return BigInteger.ONE; } else { return n.multiply(factorial(n.subtract(BigInteger.ONE))); } } } |
Ruby
1 2 3 4 5 6 7 8 9 10 |
n = gets.to_i; def factorial(n) if n <= 1 return 1 end return n * factorial(n - 1) end puts factorial(n) |