演算法學習之求大數階乘
阿新 • • 發佈:2019-02-19
題目:給定一個小於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型的資料型別儲存資料的上限決定的,不同的處理器是不同的