Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.ArrayList;
- import java.util.Scanner;
- public class Solution {
- private static ArrayList<Integer> factorial(int maxFactor) {
- ArrayList<Integer> result = new ArrayList<>();
- result.add(1);
- for(int factor = 2; factor <= maxFactor; factor++) {
- int carry = 0;
- for(int i = 0; i < result.size(); i++) {
- result.set(i, result.get(i) * factor + carry);
- int digit = result.get(i);
- if(digit >= 10) {
- carry = digit / 10;
- digit %= 10;
- result.set(i, digit);
- } else {
- carry = 0;
- }
- }
- while(carry != 0) {
- result.add(carry % 10);
- carry /= 10;
- }
- }
- return result;
- }
- public static void main(String[] args) {
- try (Scanner sc = new Scanner(System.in)) {
- int T = sc.nextInt();
- while(T-- > 0) {
- int N = sc.nextInt();
- int sum = 0;
- sum = factorial(N).stream().map((i) -> i).reduce(sum, Integer::sum);
- System.out.println(sum);
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement