階乘之和 防止int型別溢位的小技巧 計時函式

2022-05-10 20:42:06 字數 504 閱讀 3108

計算前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的時候已經溢位了。所以...