C語言OJ專案參考 1034 求值

2021-07-23 19:46:22 字數 921 閱讀 8299

(1034) 求值

description

求sn=1!+2!+3!+4!+5!+…+n!之值,其中n是乙個數字。

input

noutput

sample input

5sample output

153

參考解答

#include 

int main ( )

printf("%ld", sum);

return

0;}

本題中未指定n的大小。實際上,當n≥13時,n!就已經超過int型資料的取值範圍而溢位。所以,本題中,將fact、sum定義為long型,以解決溢位問題。

目前在32位的系統中,long型與int都佔4個位元組。結果是,n≥13時,即使fact、sum定義為long型,溢位在所難免。我在編這道程式時,在我的機器上測試,int型的結果與long型的結果一致。

神奇的是,在oj平台上,fact、sum定義為int型為錯,當它們為long型時卻對了。因為,**被提交到了伺服器,伺服器是64位的,long型為8個位元組。

另外,下面的程式是最保險的:

#include 

int main ( )

printf("%lld", sum);

return

0;}

這裡,將fact、sum定義為long long int型,即使32位系統,當n≥13時,變可以得到正確的解答,這時,輸出結果時,格式控制該用%lld。不過,在32位系統上安裝的codeblocks會給我們出來2個warning,不要理會即是。

C語言OJ專案參考 1942 進製轉換

description 輸入乙個十進位制數n,將它轉換成r進製數輸出。input 輸入資料報含多個測試例項,每個測試例項包含兩個整數n 32位整數 和r 2 r 16,r 10 outputt 為每個測試例項輸出轉換後的數,每個輸出佔一行。如果r大於10,則對應的數字規則參考16進製制 比如,10用...

C語言OJ專案參考 1942 進製轉換

description 輸入乙個十進位制數n,將它轉換成r進製數輸出。input 輸入資料報含多個測試例項,每個測試例項包含兩個整數n 32位整數 和r 2 r 16,r 10 outputt 為每個測試例項輸出轉換後的數,每個輸出佔一行。如果r大於10,則對應的數字規則參考16進製制 比如,10用...

C語言OJ專案參考 2878 學生資訊排序

description 定義存放乙個學生資訊的結構體型別,學生資訊包括 姓名,學號,性別,院系,要求在隨意輸入5個學生的相關資訊後,按照學號從小到大順序輸出這些學生的資訊。input 先輸入5名學生的資訊,按學號順序排序輸出後在輸入要統計的院系名稱 output 先按學號從小到大的順序輸出學生資訊 ...