1. Member Join Date
Mar 2012
Posts
4
Rep Power
0

## Help with loop

The question is:
You can approximate e by using the following series
1+1/1!+1/2!+1/3!+1/4!+⋯
Write a program that finds out how many TERMS of this series you need before you first get 2.71828183 approximately.

I am having troubles writing my actual program. I am trying to loop and test then count until i hit the number but i feel as if my program is not what the question is asking. I get that the question is asking how many terms are needed to find the approximation of e and not the number given because the actual approximation is 2.71828182845904523, which is precise.

Below is my program. I would really appreciate some feedback.

Java Code:
```public static void main(String[] args) {
// TODO Auto-generated method stub

double sum=1;
double k=1;
while (k<=10)
{
sum=sum+(1/factorial (k));
k++;
if (sum>=2.71828183)
break;
}
double term=k-1;
JOptionPane.showMessageDialog (null,"You need "+term+" terms before you first get 2.71828183 approximately. ");
}

public static double
factorial (double k) {
double fact=1;
for (double j=1;j<=k;j++)
fact=fact*j;
return fact;
}

}```
Last edited by pbrockway2; 03-07-2012 at 03:42 AM. Reason: code tags added  Reply With Quote

2. Moderator   Join Date
Feb 2009
Location
New Zealand
Posts
4,716
Rep Power
18

## Re: Help with loop

Assuming that to "first get 2.71828183" means that you first obtain a value between 2.718281825 and 2.718281835 then that is what you should test for. (With a bit of thinking you might be able to simplify the test: but those are the values between which numbers round to 2.71828183.)  Reply With Quote

3. Member Join Date
Mar 2012
Posts
4
Rep Power
0

## Re: Help with loop

how would you obtain the value between 2.718281825 and 2.718281835?  Reply With Quote

4. Member Join Date
Mar 2012
Posts
4
Rep Power
0

## Re: Help with loop

when i compile and run it, it says 10 terms are needed  Reply With Quote

5. Moderator   Join Date
Feb 2009
Location
New Zealand
Posts
4,716
Rep Power
18

## Re: Help with loop Originally Posted by lifelesschild how would you obtain the value between 2.718281825 and 2.718281835?
I'm not sure I understand this. You obtain the value by adding the terms of the series together. The point is to understand when (after how many terms) you reach a value within these limits.  Reply With Quote

6. Member Join Date
Nov 2011
Posts
21
Rep Power
0

## Re: Help with loop

Your while loop stops at when k=10, don't you want it to stop when (sum<e)?  Reply With Quote

7. Member Join Date
Nov 2011
Posts
21
Rep Power
0

## Re: Help with loop

or (sum>=e) for that matter  Reply With Quote

#### Posting Permissions

• You may not post new threads
• You may not post replies
• You may not post attachments
• You may not edit your posts
•