计算e
計算e
作者: Turbo 時間限制: 1S 章節(jié): 循環(huán)
問題描述 :
利用公式e=1+ 1/1! + 1/2! + 1/3! + … + 1/n!,編程計算e的近似值,直到最后一項的絕對值小于threshold(該項不包括在結(jié)果內(nèi)),輸出e的值并統(tǒng)計累加的項數(shù)。
輸入說明 :
輸入一個實數(shù)threshold,表示累加的閾值,數(shù)列中最后一項的值大于等于該閾值。Threshold最小可為1e-10。
輸出說明 :
輸出一個實數(shù)表示e的值,保留6位小數(shù),并輸出一個整數(shù),表示累加的項數(shù)。兩個數(shù)字之間用一個空格分隔,在行首和行尾沒有多余的空格。
輸入范例 :
0.00001
輸出范例 :
2.718279 9
#include<stdio.h> int main(){double threshold;scanf("%lf",&threshold);double i=0.0,j=1.0,s=1.0,sum=0.0;int count=0;if(threshold>1)printf("%.6f %d",sum,count);//若閾值大于1,直接輸出0else{while(s>=threshold){//最后一項大于該閾值時sum=sum+s;i=i+1.0;//累加,用于計算階乘j=j*i;//每一項分母的值s=1.0/j;//每一項的值count++;}printf("%.6lf %d",sum,count);} } (1)sum=0+1=1; i=0+1=1; j=1*1=1; s=1/1=1; count=1; (2)sum=1+1=2; i=1+1=2; j=1*2=2; s=1/2=0.5; count=2; (3)sum=2+0.5=2.5; i=2+1=3; j=2*3=6; s=1/6=0.151515; count=3; ......總結(jié)
- 上一篇: 求最高、最低、平均分
- 下一篇: 求最晚和最早日期