help with recursion!

Each new term in the Fibonacci sequence is generated by adding the previous two terms. By starting with 1 and 2, the first 10 terms will be:

1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...

By considering the terms in the Fibonacci sequence whose values do not exceed four million, find the sum of the even-valued terms.

Here is my code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <iostream>

using namespace std;


int fibevensum(int firstnumber, int secondnumber,int fibconstant)
{
    int newvalue;

    newvalue = secondnumber*fibconstant + firstnumber;
    firstnumber = secondnumber;

    if(newvalue >= 4000000)
        {
            return secondnumber;
        };

    return fibevensum(firstnumber, newvalue, fibconstant);
}

int main()
{
    int fibconstant = 4;
    int firstnumber; // the first number is 0
    int secondnumber; // the second number is 2

    cout << "What is the first number in the fibonacci sequence?" << endl;
    cin >> firstnumber;
    cout << "What is the second number in the fibonacci sequence?" << endl;
    cin >> secondnumber;

    cout << fibevensum(firstnumber, secondnumber, fibconstant);
    
    return 0;
}


When this code is compiled first enter in 0 and 2 for the Fibonacci beginning.

With my code I am able to display the last even value taht does not exceed 4 million (3524578)

I need the sum of all the even numbers so I'm not sure what I can do to me function that will have it recursively add the values for me.

Thanks for all the help!!
bump
Add an extra "sum" param to fibevensum -- it will need to be a ref.

Then add code to test if the value is even (you know the modulus operator?) and add it to the "sum".

You might want to tidy up your code a bit to avoid special casing the final value.
Topic archived. No new replies allowed.