Hello, I have a small problem, I am trying to write a program that
will calculate the Fibonacci number series, and I have the code
complete with one problem. I used a long in to store the numbers, and
when the numbers get too large it maxes out the int and I can't count
any higher. I am trying to use extremely large numbers, I would like
to use up to 10^50 or so. So my question is how do I do this? I'm just
learning the language and I can't think of any way around variable
storage limitations. I would appreciate any advice.
Lee ;-) 28 13113
You will have to write your own class for that and overload the arithmic
operators, especially the + in your case.
Of course there is the question of how to store the number. One way to do
it, is to store it as a string. It might not be the most efficient way in
terms of memory and speed, but it does make the implementation
straight-forward. Initialization is also clean, just write:
Huge("123456789 ");
Another way to do it is to use multiple ints (or longs) to store the number.
You could probably implement this more efficiently than with strings, but I
think it makes the code a bit more complicated.
hth,
Joost dl******@cc.usu .edu wrote: Hello, I have a small problem, I am trying to write a program that will calculate the Fibonacci number series, and I have the code complete with one problem. I used a long in to store the numbers, and when the numbers get too large it maxes out the int and I can't count any higher. I am trying to use extremely large numbers, I would like to use up to 10^50 or so. So my question is how do I do this? I'm just learning the language and I can't think of any way around variable storage limitations. I would appreciate any advice. Lee ;-)
use a double is probably the easiest as you get 52 bits of accuracy.
Otherwise maybe an __in64.
Ryan
Ryan Winter wrote: use a double is probably the easiest as you get 52 bits of accuracy. Otherwise maybe an __in64.
__int64 :)
On Fri, 10 Oct 2003 15:20:27 +0800,
Ryan Winter <wi*********@op tusnet.com.au> wrote: dl******@cc.usu .edu wrote: Hello, I have a small problem, I am trying to write a program that will calculate the Fibonacci number series, and I have the code complete with one problem. I used a long in to store the numbers, and when the numbers get too large it maxes out the int and I can't count any higher. I am trying to use extremely large numbers, I would like to use up to 10^50 or so. So my question is how do I do this? I'm just learning the language and I can't think of any way around variable storage limitations. I would appreciate any advice. Lee ;-)
use a double is probably the easiest as you get 52 bits of accuracy. Otherwise maybe an __in64.
Those won't be useful since 167 bits are needed for 10^50.
A reasonably simple cless could be written to represent such a number,
or an existing implementation of arbitrary precision numbers.
--
Sam Holden dl******@cc.usu .edu wrote: Hello, I have a small problem, I am trying to write a program that will calculate the Fibonacci number series, and I have the code complete with one problem. I used a long in to store the numbers, and when the numbers get too large it maxes out the int and I can't count any higher. I am trying to use extremely large numbers, I would like to use up to 10^50 or so. So my question is how do I do this? I'm just learning the language and I can't think of any way around variable storage limitations. I would appreciate any advice. Lee ;-)
Search the web for some big number library.
Eg. http://www.google.com
Search text: "BigNum C++"
--
Karl Heinz Buchegger kb******@gascad .at
"Sam Holden" <sh*****@flexal .cs.usyd.edu.au > wrote in message
news:slrnbocpm4 .c0l.sh*****@fl exal.cs.usyd.ed u.au... On Fri, 10 Oct 2003 15:20:27 +0800, Ryan Winter <wi*********@op tusnet.com.au> wrote: dl******@cc.usu .edu wrote: Hello, I have a small problem, I am trying to write a program that will calculate the Fibonacci number series, and I have the code complete with one problem. I used a long in to store the numbers, and when the numbers get too large it maxes out the int and I can't count any higher. I am trying to use extremely large numbers, I would like to use up to 10^50 or so. So my question is how do I do this? I'm just learning the language and I can't think of any way around variable storage limitations. I would appreciate any advice. Lee ;-)
use a double is probably the easiest as you get 52 bits of accuracy. Otherwise maybe an __in64.
Those won't be useful since 167 bits are needed for 10^50.
A reasonably simple cless could be written to represent such a number, or an existing implementation of arbitrary precision numbers.
A very common way to solve this problem is either splitting or representing
the numbers as a string. For a simple example how you could do this take a
look at http://www.codeproject.com/cpp/largenumber.asp
HTH
Chris
"Joost Ronkes Agerbeek" <jo***@ronkes.n l> wrote in message
news:3f******** *************** @news.xs4all.nl ...
| You will have to write your own class for that and overload the arithmic
| operators, especially the + in your case.
|
| Of course there is the question of how to store the number. One way to do
| it, is to store it as a string. It might not be the most efficient way in
| terms of memory and speed, but it does make the implementation
| straight-forward. Initialization is also clean, just write:
| Huge("123456789 ");
|
| Another way to do it is to use multiple ints (or longs) to store the
number.
| You could probably implement this more efficiently than with strings, but
I
| think it makes the code a bit more complicated.
Not necessarily more complicated.
Instead of using characters to represent decimal digits, you can use
short integers that store a base 10000 digit (0 to 9999).
(this keeps the product of two such digits in range for 'long').
It is easier than dealing with characters, as you don't need to offset
the values by '0' everywhere. Printing the number is also simple enough.
Also, for many computations, it is easier to manipulate the numbers in
little-endian format (units to the left/lower adresses), rather than
the way that we write numbers in strings (units at the end).
std::vector<int > is an option to store such a number...
Regards,
-- http://ivan.vecerina.com
"Sam Holden" <sh*****@flexal .cs.usyd.edu.au > wrote in message news:slrnbocpm4 .c0l.sh*****@fl exal.cs.usyd.ed u.au... On Fri, 10 Oct 2003 15:20:27 +0800, Ryan Winter <wi*********@op tusnet.com.au> wrote: dl******@cc.usu .edu wrote: Hello, I have a small problem, I am trying to write a program that will calculate the Fibonacci number series, and I have the code complete with one problem. I used a long in to store the numbers, and when the numbers get too large it maxes out the int and I can't count any higher. I am trying to use extremely large numbers, I would like to use up to 10^50 or so. So my question is how do I do this? I'm just learning the language and I can't think of any way around variable storage limitations. I would appreciate any advice. Lee ;-)
use a double is probably the easiest as you get 52 bits of accuracy. Otherwise maybe an __in64.
Those won't be useful since 167 bits are needed for 10^50.
A reasonably simple cless could be written to represent such a number, or an existing implementation of arbitrary precision numbers.
-- Sam Holden
Computing Very Long Fibonacci Numbers (for instance Fibonacci[5,000,000]) : http://alexvn.freeservers.com/s1/fibonacci.html
=============== =============== =======
Alex Vinokur
mailto:al****@c onnect.to http://mathforum.org/library/view/10978.html
=============== =============== =======
Here is the code that I wrote, It is quite simple. Dose anyone have
and advice on fixing it.I am compiling it under Linux with gcc.
#include<iostre am.h>
int main(void)
{
long fib1 = 1;
long fib2 = 1;
long fib3;
long fib4;
while (fib4 < 400000000)
{
fib3 = fib1 + fib2;
fib4 = fib3 + fib2;
fib1 = fib3;
fib2 = fib4;
cout << fib3 << endl;
cout << fib4 << endl;
}
return 0;
}
I would appriciate any advice or examples on how make the code do what
I want.
Lee This thread has been closed and replies have been disabled. Please start a new discussion. Similar topics |
by: Alex Vinokur |
last post by:
An algorithm which computes very long Fibonacci numbers
http://groups.google.com/groups?selm=bnni5p%2412i47o%241%40ID-79865.news.uni-berlin.de
was used as a performance testsuite
to compare speed of the code produced by various compilers.
===========================================================
Windows 2000 Professional Ver 5.0 Build 2195 Service Pack 2
Intel(R) Celeron(R) CPU 1.70 GHz
GNU time 1.7 (to get the real time used)
|
by: Niks |
last post by:
Can anybody explain me what is a "Fibonacci search"?
even an URL will do.
Thanks for reading.
|
by: YS Sze |
last post by:
If you know the exact longitude and latitude for a specific
location, would anyone think it'd make any sense to find out if this
set of location numbers is really part of the Fibonacci series or not?
Or, another way to look at this is that: Would anyone of you think it
is worth a while to find out if there is any location on earth with
the set of longitude and latitude numbers that coincides with the
Fibonacci series?
As I see it, if...
|
by: jugaaru |
last post by:
How to generate fibonacci mubers in C ?
|
by: srinpraveen |
last post by:
I know to write a program to print the fibonacci series. But the problem is my teacher has asked us to write a program to print the natural numbers that are not involved in the fibonacci series.
For example if the user gives 7 terms of the series to be displayed,
then the display of the fibonacci series is 0, 1,1, 2, 3, 5, 8.
But the natural numbers not involved are 4, 6 and 7. That's what my teacher wants.
But I am struggling to write a...
| |
by: mac |
last post by:
Hi,
I'm trying to write a fibonacci recursive function that will return
the fibonacci string separated by comma. The problem sounds like this:
-------------
Write a recursive function that creates a character string containing
the first n Fibonacci numbers - F(n) = F(n - 1) + F(n - 2), F(0) =
F(1) = 1 -, separated by comma. n should be given as an argument to
the program. The recursive function should only take one parameter, n,
and...
|
by: Andrew Tatum |
last post by:
I'm having some problems with the below equation.
I have no problems when it comes to positives. Negatives create the
problem..
C
2 1
4
However, this doesn't work:
|
by: help2008 |
last post by:
Hi
I have been doing this working on an assignment for the last week and have stumbled across a part which I cant get my head around. I was hoping that someone could explain what I am missing. I do not expect you to do my work for me. I have completed the rest of the assignment and I am just stuck here (at the very end). Here is my problem.
"I have to find out the decimal values of the ratios of consecutive fibonacci numbers."
As I said...
|
by: altaey |
last post by:
Question Details:
Write a program to find and print a Fibonacci sequence of numbers. The Fibonacci sequence is defined as follow:
Fn = Fn-2 + Fn-1, n >= 0
F0 = 0, F1 = 1, F2 = 1
Your program should prompt the user to enter a limit and indicate whether the last number in the sequence printed is either even or odd.
|
by: Hystou |
last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it.
First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
|
by: jinu1996 |
last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth.
The Art of Business Website Design
Your website is...
| |
by: Hystou |
last post by:
Overview:
Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
|
by: agi2029 |
last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own....
Now, this would greatly impact the work of software developers. The idea...
|
by: isladogs |
last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM).
In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules.
He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms.
Adolph will...
|
by: conductexam |
last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one.
At the time of converting from word file to html my equations which are in the word document file was convert into image.
Globals.ThisAddIn.Application.ActiveDocument.Select();...
|
by: TSSRALBI |
last post by:
Hello
I'm a network technician in training and I need your help.
I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs.
The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols.
I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
|
by: 6302768590 |
last post by:
Hai team
i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
| |
by: bsmnconsultancy |
last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...
| |