1. 程式人生 > >演算法學習之求大數階乘

演算法學習之求大數階乘

題目:給定一個小於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型的資料型別儲存資料的上限決定的,不同的處理器是不同的