GitHub
Articles
The Story Of Black Alpha
Read More
Quotes
If you are not mature enough to regret your wrong decision taken in past, then you will not be good enough to make better in the future.
View More
Poems
Do not go gentle into that good night
View More
Coding
big-factorial
import java.util.Scanner; /** * Program to find factorial for n, where 1 <= n <= 100. Solution for codechef.com * * @author Amit Kumar (allyamit@gmail.com) * @since 28-May-2017 */ public class Main { // this stores the result limit private final static int M_INDEX = 199; public static void main(String[] args) { try { Scanner scan = new Scanner(System.in); Integer times = scan.nextInt(); int inputNumbers[] = new int[100]; for (int i = 0; i < times; i++) { inputNumbers[i] = scan.nextInt(); } for (int i = 0; i < times; i++) { display(factorial(inputNumbers[i])); System.out.println(); } scan.close(); } catch (Exception e) { System.out.println(e.getMessage()); } } /** Convert the number into array integer. */ private static int[] convertNumberToArray(int x) { int[] number = new int[200]; int index = 0; int lastDigit; // Store x number into result while (x > 0) { lastDigit = x % 10; number[index] = lastDigit; x /= 10; index++; } number[M_INDEX] = index; return number; } /** Multiply the BigNumber generated with the second number. */ private static int[] multiply(int[] x, int y) { int[] result = new int[200]; int singleDigitMultiplyResult; int carry = 0; int resultIndex = 0; int lastDigit; for (int i = 0; i < x[M_INDEX]; i++) { singleDigitMultiplyResult = (x[i] * y) + carry; lastDigit = (singleDigitMultiplyResult) % 10; carry = singleDigitMultiplyResult / 10; result[resultIndex] = lastDigit; resultIndex++; } int[] car = convertNumberToArray(carry); for (int i = 0; i < car[M_INDEX]; i++) { result[resultIndex] = car[i]; resultIndex++; } result[M_INDEX] = resultIndex; return result; } /** Find the factorial */ private static int[] factorial(int n) { if (n == 1) return convertNumberToArray(1); return multiply(factorial(n - 1), n); } /** Display the result in the codechef.com format */ private static void display(int[] result) { for (int i = result[M_INDEX] - 1; i >= 0; i--) { System.out.print(result[i]); } } }
View More
EXPERIENCE
7 YEARS
PROJECT DONE
50 +
EXPERTY
JAVA/SCALA