c語(yǔ)言之如何求e的近似值
如何求e的近似值
自然常數(shù) e 可以用級(jí)數(shù) 1+1/1!+1/2!+?+1/n!+? 來(lái)近似計(jì)算。本題要求對(duì)給定的非負(fù)整數(shù) n,求該級(jí)數(shù)的前 n+1 項(xiàng)和。
輸入格式:
輸入第一行中給出非負(fù)整數(shù) n(≤1000)。
輸出格式:
在一行中輸出部分和的值,保留小數(shù)點(diǎn)后八位。
輸入樣例:
10
輸出樣例:
2.71828180
我的答案
#include <stdio.h>
int main()
{
?? ?int n;
?? ?double sum = 1, temp = 1;//注意是n+1項(xiàng),所以先令sum=1
?? ?scanf("%d", &n);
?? ?for (int i = 1; i <= n; i++)
?? ?{
?? ??? ?temp *= i;
?? ??? ?sum += 1.0 / temp;
?? ?}
?? ?printf("%.8lf",sum);
?? ?return 0;
}求e的近似值(巧用保留位數(shù),拒絕最大值溢出)
題目:
自然常數(shù) e 可以用級(jí)數(shù) 1+1/1!+1/2!+?+1/n!+? 來(lái)近似計(jì)算。本題要求對(duì)給定的非負(fù)整數(shù) n,求出該級(jí)數(shù)的前 n+1 項(xiàng)和。
輸入格式:
輸入第一行中給出非負(fù)整數(shù) n(≤1000)
輸出格式:
在一行中輸出部分和的值,保留小數(shù)點(diǎn)后八位
注意:
一開(kāi)始,n按照輸入格式中給定的條件設(shè)置為≤1000,,,果然數(shù)據(jù)溢出了,用long long int也拯救不了的那種,結(jié)果如下:

然后想到用數(shù)組存下來(lái),,更難了好嗎o(╥﹏╥)o?。?!
突然,輸出格式中保留小數(shù)點(diǎn)后八位,一下子亮了,簡(jiǎn)直是高光?。∫赃@個(gè)為參照,截取不就好了,具體見(jiàn)代碼部分。
事實(shí)上,當(dāng)m<=0.00000001時(shí),滿足條件的第一個(gè)m=0.0000000021,后面項(xiàng)的值更小,所以在此處截取對(duì)保留8位數(shù)的結(jié)果不會(huì)進(jìn)行損耗。
代碼:
#include<stdio.h>
int main(){
int num;
long long int n=1;
double m,sum=1;
scanf("%d",&num);
if(num>=0&&num<=1000){
for(int i=1;i<=num;i++){
n*=i; //n表示n!
m=1.0/n;
sum+=m;
if(m<=0.00000001){ //當(dāng)某一項(xiàng)的值小于八位小數(shù)時(shí),跳出循環(huán)
break;
}
}
printf("%.08lf",sum);
}
return 0;
}結(jié)果:



總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
C語(yǔ)言中volatile關(guān)鍵字的作用及說(shuō)明
文中主要介紹了C語(yǔ)言中volatile關(guān)鍵字的含義和使用場(chǎng)景,volatile是一個(gè)類型修飾符,主要用來(lái)修飾被不同線程訪問(wèn)和修改的變量,它的作用是防止編譯器對(duì)代碼進(jìn)行優(yōu)化,確保每次直接讀取原始內(nèi)存地址的值2024-10-10
C語(yǔ)言中求余弦值的相關(guān)函數(shù)總結(jié)
這篇文章主要介紹了C語(yǔ)言中求余弦值的相關(guān)函數(shù)總結(jié),包括求余弦和雙曲線余弦以及反余弦的求值,需要的朋友可以參考下2015-08-08
C語(yǔ)言簡(jiǎn)明分析選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)的使用
C語(yǔ)言條件控制語(yǔ)句選擇結(jié)構(gòu),是屬于計(jì)算機(jī)的語(yǔ)言編輯,有在C語(yǔ)言條件控制中的語(yǔ)句選擇結(jié)構(gòu)的存在,即是C語(yǔ)言條件控制語(yǔ)句選擇結(jié)構(gòu),循環(huán)控制語(yǔ)句是一個(gè)基于C語(yǔ)言的編程語(yǔ)句,該語(yǔ)句主要有while循環(huán)語(yǔ)句、do-while循環(huán)語(yǔ)句和for循環(huán)語(yǔ)句來(lái)實(shí)現(xiàn)循環(huán)結(jié)構(gòu)2022-04-04
C++調(diào)用matlab函數(shù)的實(shí)例
這篇文章主要介紹了C++調(diào)用matlab函數(shù)的方法,包括封裝matlab函數(shù),編譯matlab函數(shù)及C++環(huán)境配置,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-08-08
詳解C++編程中向函數(shù)傳遞引用參數(shù)的用法
這篇文章主要介紹了詳解C++編程中向函數(shù)傳遞引用參數(shù)的用法,包括使函數(shù)返回引用類型以及對(duì)指針的引用,需要的朋友可以參考下2016-01-01
C++回調(diào)函數(shù)實(shí)現(xiàn)計(jì)算器和qsort
這篇文章主要介紹了C++回調(diào)函數(shù)實(shí)現(xiàn)計(jì)算器和qsort,回調(diào)函數(shù)就是一個(gè)通過(guò)函數(shù)指針調(diào)用的函數(shù)。如果你把函數(shù)的指針(地址)作為參數(shù)傳遞給另一個(gè)函數(shù),當(dāng)這個(gè)指針被用來(lái)調(diào)用其所指向的函數(shù)時(shí),我們就說(shuō)這是回調(diào)函數(shù)2022-08-08
C語(yǔ)言中四種取整方式,取余/取模運(yùn)算以及負(fù)數(shù)取模問(wèn)題詳解
這篇文章主要介紹了C語(yǔ)言中四種取整方式及負(fù)數(shù)取模問(wèn)題,包括了算法的分析與改進(jìn),是很多程序設(shè)計(jì)競(jìng)賽中常見(jiàn)的算法,需要的朋友可以參考下2021-09-09

