計算前n個正整數階乘之和的後六位:
注意點是,用乙個int型別儲存階乘之和時,要防止溢位
一,在每一次處理階乘(fa)或者階乘之和(s)時,都對10^6取餘,這樣最終結果不變,還避免了越界
二,計時函式可以用來觀察程式執行時間
用法:
printf("%f",(double)clock()/clocks_per_sec);
**:
#include"iostream
"#include
"ctime
"using
namespace
std;
intmain()
printf(
"%d\n
",s);
printf(
"time used = %.2f\n
",(double)clock()/clocks_per_sec);
return0;
}
如何判斷int型別溢位
int型別為4位元組共32位,所以乙個int能夠表示的資料的範圍為 231,231 1 表示為十進位制為 2147483648 2147483647 int資料型別出現異常的情況一般是在資料發生加法和乘法操作。對於加法運算 define int max 2147483647 int a int ma...
演算法實現求n的階乘(防止溢位)
求大整數n階乘,在找工作筆試和面試的過程中,不止一次遇到這個問題,用乙個for迴圈迭代出的結果肯定是不行的,即直接用int,預設是32位,它能表示的最大值為2,147,483,647,但是12的階乘為479,001,600,13的階乘為6,227,020,800,所以當n為13的時候已經溢位了。所以...
演算法實現求n的階乘(防止溢位)
求大整數n階乘,在找工作筆試和面試的過程中,不止一次遇到這個問題,用乙個for迴圈迭代出的結果肯定是不行的,即直接用int,預設是32位,它能表示的最大值為2,147,483,647,但是12的階乘為479,001,600,13的階乘為6,227,020,800,所以當n為13的時候已經溢位了。所以...