计算e
計(jì)算e
作者: Turbo 時(shí)間限制: 1S 章節(jié): 循環(huán)
問題描述 :
利用公式e=1+ 1/1! + 1/2! + 1/3! + … + 1/n!,編程計(jì)算e的近似值,直到最后一項(xiàng)的絕對(duì)值小于threshold(該項(xiàng)不包括在結(jié)果內(nèi)),輸出e的值并統(tǒng)計(jì)累加的項(xiàng)數(shù)。
輸入說明 :
輸入一個(gè)實(shí)數(shù)threshold,表示累加的閾值,數(shù)列中最后一項(xiàng)的值大于等于該閾值。Threshold最小可為1e-10。
輸出說明 :
輸出一個(gè)實(shí)數(shù)表示e的值,保留6位小數(shù),并輸出一個(gè)整數(shù),表示累加的項(xiàng)數(shù)。兩個(gè)數(shù)字之間用一個(gè)空格分隔,在行首和行尾沒有多余的空格。
輸入范例 :
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){//最后一項(xiàng)大于該閾值時(shí)sum=sum+s;i=i+1.0;//累加,用于計(jì)算階乘j=j*i;//每一項(xiàng)分母的值s=1.0/j;//每一項(xiàng)的值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é)
- 上一篇: 求最高、最低、平均分
- 下一篇: TCL 推出 C11G QLED 智屏: