题目:给定一个小于7000的数,求其阶乘。
import java.util.ArrayList; import java.util.List; public final class Main { static Integer num = 7000; static List<Integer> result = new ArrayList<Integer>(); public static void main(String[] args) { for (int i = 1; i < num + 1; i++) { if (1 == i) { result.add(i); } else { for (int y = 0; y < result.size(); y++) { result.set(y, result.get(y) * i); } } for (int z = 0; z < result.size(); z++) { Integer current = result.get(z); if (current > 9) { Integer carry = current / 10; Integer remainder = current % 10; result.set(z, remainder); Integer next = 0; if (result.size() - 1 == z) { result.add(0); } else { next = result.get(z + 1); } result.set(z + 1, next + carry); } } } System.out.println(result.size()); for (int i = result.size() - 1; i >= 0; i--) { System.out.print(result.get(i)); } } }相关:之所以要求给定一个小于7000的数字是因为int型的数据类型存储数据的上限决定的,不同的处理器是不同的
