u Calculate e
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 33218 Accepted Submission(s): 14956
Problem Description
A simple mathematical formula for e is
where n is allowed to go to infinity. This can actually yield very accurate approximations of e using relatively small values of n.
where n is allowed to go to infinity. This can actually yield very accurate approximations of e using relatively small values of n.
Output
Output the approximations of e generated by the above formula for the values of n from 0 to 9. The beginning of your output should appear similar to that shown below.
Sample Output
n e - ----------- 0 1 1 2 2 2.5 3 2.666666667 4 2.708333333
Source
我这样写是非常笨的方法了。。。嘿嘿
#include<iostream>
using namespace std;
int main()
{
printf("n e\n");
printf("- -----------\n");
printf("0 1\n");
printf("1 2\n");
printf("2 2.5\n");
printf("3 ");
printf("%.9lf\n",2+1.0/2+1.0/(3*2));
printf("4 ");
printf("%.9lf\n",2+1.0/2+1.0/(3*2)+1.0/(4*3*2));
printf("5 ");
printf("%.9lf\n",2+1.0/2+1.0/(3*2)+1.0/(4*3*2)+1.0/(5*4*3*2));
printf("6 ");
printf("%.9lf\n",2+1.0/2+1.0/(3*2)+1.0/(4*3*2)+1.0/(5*4*3*2)+1.0/(6*5*4*3*2));
printf("7 ");
printf("%.9lf\n",2+1.0/2+1.0/(3*2)+1.0/(4*3*2)+1.0/(5*4*3*2)+1.0/(6*5*4*3*2)+1.0/(7*6*5*4*3*2));
printf("8 ");
printf("%.9lf\n",2+1.0/2+1.0/(3*2)+1.0/(4*3*2)+1.0/(5*4*3*2)+1.0/(6*5*4*3*2)+1.0/(7*6*5*4*3*2)+1.0/(8*7*6*5*4*3*2));
printf("9 ");
printf("%.9lf\n",2+1.0/2+1.0/(3*2)+1.0/(4*3*2)+1.0/(5*4*3*2)+1.0/(6*5*4*3*2)+1.0/(7*6*5*4*3*2)+1.0/(8*7*6*5*4*3*2)+1.0/(9*8*7*6*5*4*3*2));
return 0;
}
下面copy一下。。是比较简便的
<pre name="code" class="cpp"> 1: #include<stdio.h>
2: void main()
3: {
4: double arr[10] = {1};
5: int i = 1,j = 3;
6: while(i < 10)
7: {
8: arr[i] = i * arr[i - 1];
9: i++;
10: }
11: printf("n e\n");
12: printf("- -----------\n");
13: printf("0 1\n");
14: printf("1 2\n");
15: printf("2 2.5\n");
16: double result = 2.5;
17: while(j < 10)
18: {
19: result = result + 1/arr[j];
20: printf("%d %11.9f\n",j,result);
21: j++;
22: }
23: }