GitHub
Article

The Story Of Black Alpha-> the-story-of-black-alpha

View More
Quotes
"There's a way to do it better - find it.."
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
Veiw More
Code
divisible-by-11
Veiw More
Code
big-factorial
Veiw More
Code
generate-unique-orderid-or-transactionid
Veiw More
Do not go gentle into that good night
Veiw More
How Do I Love Thee
Veiw More
Shall I compare thee to a summer’s day?
Veiw More
ACE Rank Journey
Veiw More
Spend $86400
Veiw More
Talent Vs Communication
Veiw More
Zero to One: Notes on Start Ups, or How to Build the Future