10000以內階乘,在c語言中沒有型別可以以儲存這麼大的數,所以我們可以用陣列來存它,int a[10005];這裡10005只是習慣,當然,也可以用斯特靈公式來算a陣列的大小
下面附上**:
題解請看**注釋,
#include
int a[
100000];
int main()
//這層迴圈使得a陣列每個數都是個一位數
for(j =
0; j < temp; j++
)//判斷最高位,進行進製
if(a[j]
>0)
//j當前的值可表示為求完一輪階乘的位數,將j傳遞給temp!
temp = j +1;
}}//從後往前依次輸出
for(i = temp -
1; i >=
0; i--
)printf
("%d"
, a[i]);
printf
("\n");
return0;
}
感謝**!! 求n的階乘(10000)
題意 如題目 思路 用乙個陣列,陣列的每一位存乙個8位數,兩個for迴圈,不斷從1開始累乘。include include include include using namespace std const int maxn 100000000 注意不能超過long long 的表示範圍 long ...
求10000以內n的階乘
經過我n天的努力,終於把大整數的階乘的乙個演算法看懂了!什麼智商嘛,打擊死我自己了。什麼是大整數的階乘呢,就是結果無論用c 語言中的哪一種資料型別都不能儲存的。既然不能用一種資料型別儲存,那麼只能想其他的辦法儲存了。呵呵,就像 於是,我們自然而然的想到了用陣列來儲存數字。建立乙個int的陣列。因為i...
大數問題 超大數(10000以內)的階乘
問題分析 很容易發現,由於n的範圍很大,一般簡單的階乘演算法肯定會溢位,因為當20 已經接近long long的上限了。下面基於上面的思想,給出此題的兩種 實現 事先製表 includeusing namespace std define n 10005 vecto ctorial n void c...