2006 求N 的精確值

2021-09-29 22:43:18 字數 760 閱讀 7952

time limit: 3 second

memory limit: 2 mb

對於階乘函式,即使自變數較小,其函式值也會相當大。例如: 10!=3628800 25!=15511210043330985984000000 若用integer型資料表示階乘,最多僅可用7!,用longint型別型別亦只能到12!。設計乙個程式,當鍵入乙個正整數n(1<=n<=100)時,輸出n!的精確值。

如果n的值不在規定的範圍,將輸出「error」。

輸入檔案中只乙個數字,表示要計算的n的值(1<=n<=100)。

輸出n!的精確值

12
12!=479001600

【題解】

高精度*單精度。乘的時候要記錄進製資訊。然後處理進製即可。不斷更新數字的長度。最後倒敘輸出

【**】

#include #include const int maxn = 500;

int n,a[maxn],la = 1;

void input_data() //輸入資料

for (int i = 2; i <= maxn;i++)

a[i] = 0;

a[1] = 1; //先置1方便後面乘

}void get_ans()

while (x > 0) //如果進製數字》0則 數字的位數可以增加 不斷增加即可

}}void output_ans()

int main()

求n的階乘的精確值

斯特林公式可以求出n!的近似值,但是如果需要求精確值的話,就要採取另外的辦法了。當n 1000的時候,可以直接模擬求階乘,用乙個陣列儲存階乘的每一位,大概3000的陣列就行。程式如下 include include define n 3000 int f n 儲存階乘的位數 int main ret...

9112 求2的n次方的精確值

time limit 1 second memory limit 2 mb 問題描述 求2 n的精確值。n由使用者輸入,0 n 3232。輸入只有一行,乙個正整數n。輸出為計算的結果,最後用回車結束。8256 換行 題解 這是個單精度乘高精度的問題,每次在做乘方的時候,把當前算出的結果的每一位都乘上...

求2 22 222 n個2)的精確值

解題思想 按照從低位到高位的順序,把各個被加數的位上的數值相加並加上比該位更低位向該位的進製,取餘求出該位上的餘數,取整求出該位像比它高一位的進製。重複上述步驟,直至求出和的所有位。方法一 include stdio.h include stdlib.h include string.h int c...