programming forums Java Java JSRs Mobile Certification Databases Caching Books Engineering OS Languages Paradigms IDEs Build Tools Frameworks Products This Site Careers Other all forums
this forum made possible by our volunteer staff, including ...
Marshals:
Sheriffs:
Saloon Keepers:
Bartenders:

# Java Newbie "Fibonacci Sequence"

Jb Anderson
Greenhorn
Posts: 13
Hello Again. To reiterate, I am a newbie attempting to learn Java through iTunes Stanford CS106a and Eric Roberts' "Art and Science of Java." I am not a student nor am I enrolled in any class. I am attempting a programming exercise (chp. 4, ex. 9) to display the values in the Fibonacci sequence from F0 to F15. I understand the concept, but, for some reason my equation is simply creating a resulting string of numbers that simply increase by 2's. Very frustrating. As, I know it is supposed to be the sum of the previous F and the F that precedes that one to total the new F number. It seems so simple yet I seem to be far off. As usual, I have worked my code for your review. Any and all help is always greatly appreciated!

Winston Gutkowski
Bartender
Posts: 10575
66
Jb Anderson wrote:I understand the concept, but, for some reason my equation is simply creating a resulting string of numbers that simply increase by 2's.

As, I know it is supposed to be the sum of the previous F and the F that precedes that one to total the new F number.

Yes, but what is F? It definitely isn't the current index, which is all your program is working with.

My suggestion: StopCoding (←click), and have another look at the formula. If you're still having problems, come back and we can help you further.

Tip: You might want to think about using an array (or a List) to keep previous values of 'F', but it's not strictly necessary.

Winston

Douglas Knapp
Greenhorn
Posts: 26
JB, I'm not able to find that course in iTunes. Is there a link?

Tim Cooke
Marshal
Posts: 4051
239
• 2
Winston is right. From looking at your code I think you have misunderstood how the Fibonacci Sequence is derived.

The formula is Fn = Fn-1 + Fn-2. With seed values F0=0, F1=1.

Start small. Get your code working for small values of n.
Start at n=0. What is the expected outcome? What about where n=1?
n=0. Sequence [0]
n=1. Sequence [0,1]
n=2. Sequence [0,1,1]
n=3. Sequence [0,1,1,2]

Take a look at how you are calculating the value of Fn. Are you calculating Fn = Fn-1 + Fn-2? Or are you calculating Fn = (n-1) + (n-2)?

I would also recommend that you base your if conditions on the current value of f rather than total, it's not clear what the significance of it being less than 0 and whether it's -3 or not is. Given that the value of total, which should be the current Fib sequence value, is not right then when you fix that then your if condition will fall apart causing you more confusion.

Mangal Pandey
Greenhorn
Posts: 8
Your variable SENTINEL will print up-to F16 though you need F15, make it 15.

Jb Anderson
Greenhorn
Posts: 13
Tim,

Thank you very much for your reply. I was hoping for someone to evaluate my code and then nudge me so I could see what I was actually doing and how it differed from what I needed to do. Your response has greatly helped me re-focus my approach. Not being a "math-person" I was getting a bit flummoxed with the actual Fibonacci equation which then resulted in a flawed translation to Java coding.

Thank you, Tim, for taking the time to examine my code and realize what I needed to be told so I could refine things on my own.

I will go back to the woodshed and re-post with (hopefully) a successful program.

-JB

Jb Anderson
Greenhorn
Posts: 13
Mr. Pandey,

Thanks for pointing out that mistake. It was an oversight on my part. I appreciate your input.

-JB

Jb Anderson
Greenhorn
Posts: 13
Douglas,

The course can be found on iTunes U. It won't be listed in the "normal" iTunes storefront. Download the iTunesU app to access the available courses.

-JB

Douglas Knapp
Greenhorn
Posts: 26
Thanks, JB. I haven't yet wrapped my head around iTunes U.

Tim Cooke
Marshal
Posts: 4051
239
Jb, How are you getting on?