Results 1 to 5 of 5
Thread: help with fibonacci problem
- 12-12-2008, 09:44 PM #1
Member
- Join Date
- Dec 2008
- Posts
- 5
- Rep Power
- 0
help with fibonacci problem
ok so i want to find the position in the fibonacci series of the first number with 1000 digits.. heres what i have so far
however heres the first numbers in the output..Java Code:public class pe25 { public static void main(String [] args) { //initialize variables Integer a = new Integer(0); Integer b = new Integer(1); String s = ""; // would just put String s; but i need to use the length // of it in the while loop int count = 0; // what number in the series the number is while (s.length() < 1000){ count++; b = a + b; a = b - a; s = a.toString(); System.out.println(s);// just for testing } System.out.println(count); } }
notice how they are right for a while then suddenly jump to being negative..Java Code:1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 10946 17711 28657 46368 75025 121393 196418 317811 514229 832040 1346269 2178309 3524578 5702887 9227465 14930352 24157817 39088169 63245986 102334155 165580141 267914296 433494437 701408733 1134903170 1836311903 -1323752223 512559680 -811192543 -298632863 -1109825406 -1408458269 1776683621 368225352 2144908973 -1781832971
i have no idea why this isnt working as i programming basically the exact same thing in python and it works perfectly.. heres the python code if anyone cares..Java Code:a = 0 b = 1 count = 0 while len(str(a)) < 1000: count += 1 b = a+b a = b-a print count
- 12-12-2008, 10:11 PM #2
Your number is becoming too large for an Integer to hold. Try using long or BigInteger.
Your code breaks at right under 3 billion or about 2^32. I'm not sure the highest that Integer can hold(perhaps someone can toss that in?)
- 12-12-2008, 10:24 PM #3
Member
- Join Date
- Dec 2008
- Posts
- 5
- Rep Power
- 0
ahh i see thanks.. heres what i ended up with
Java Code:import java.math.BigInteger; public class pe25 { public static void main(String [] args) { //initialize variables BigInteger a = new BigInteger("0"); BigInteger b = new BigInteger("1"); String s = ""; // would just put String s; but i need to use the length // of it in the while loop int count = 0; // what number in the series the number is while (s.length() < 1000){ count++; b = a.add(b); a = b.subtract(a); s = a.toString(); } System.out.println(count); } }
- 12-12-2008, 10:38 PM #4
Senior Member
- Join Date
- Nov 2007
- Posts
- 160
- Rep Power
- 6
To see the highest value of an Integer:
System.out.println(Integer.MAX_VALUE);
- 12-12-2008, 10:41 PM #5
Similar Threads
-
Printing Fibonacci Numbers
By Java Tip in forum java.langReplies: 0Last Post: 04-09-2008, 06:43 PM -
A Fibonacci printing program
By Java Tip in forum Java TipReplies: 0Last Post: 03-28-2008, 07:26 PM -
Computing Fibonacci numbers recursively
By Java Tip in forum Java TipReplies: 0Last Post: 01-22-2008, 08:20 PM -
Fibonacci Algorithm
By susan in forum New To JavaReplies: 1Last Post: 08-07-2007, 04:25 AM


LinkBack URL
About LinkBacks
Reply With Quote
Bookmarks