Hello. I've tried to do this on my own over the weekend but it's really confusing. How would I go about making a recursive function which is my 'int evenUp ( int number )' to add 1 to each of my even digits?
The program will create a new number found by increasing each even digit of user's number by 1. Then the program will output the difference of the new number subtract the old number.
Example:
Enter a number: 3456
3557 - 3456 = 101
Here's what I have so far:
#include <iostream>
using namespace std;
int getNumber()
{
int num;
cout << "Enter a number: ";
cin >> num;
return num;
}
int evenUp (int number)
{
if ( number < 10 && number%2 == 1 ) return number;
int a_digit = number % 10; //stores last digit of the number
if ( a_digit%10 == 0) {
a_digit = a_digit+1;
return a_digit + number/10;
}
}
int main()
{
int number = getNumber();
int evenUpNumber = evenUp( number );
As you can see my recursion function 'int evenUp (int number)' is wrong but I can't figure out how to fix it.
Any help would be appreciated. Thank you.
int evenUp (int number) is supposed to take the number the user put in and for every even digit, the function will add 1 to it then return it so I can use it in int main.
So for example, if number is 323, it should return 424.
What I have understood from your description and your code;
First You will need to get each digit from your number separately.
Here is how You can get it :
Number is 323.
a_digit = 323 % 10 //(% == Mod)
//a_digit now contains 3; You can even check it here and increase or whatever u like
Number = 323 / 10
//Number will now contain 32
So using other names, here's the same thing as above, written differently
{
a_digit = Number % 10 // a_digit = 2
// Increase digit and store digit if odd etc.
Number = Number / 10 // Number = 3
}
I just can't figure out how to increase by 1 and return it
Here it is just incase you're curious. Thank you so much for your help but it had to use recursion.
#include <iostream>
using namespace std;
/**
* This function asks the user for a number.
*
* Parameter: None
* Return: Number enter by user.
*/
int getNumber()
{
int num;
cout << "Enter a number: ";
cin >> num;
return num;
}
/**
* This function takes the number and adds 1 to all even digits
*
* Parameter: integer number given in getNumber()
* Return: Returns a number where all the even digits are added by 1
*/
int evenUp (int number)
{
if ( number < 10 )
{
if ( number % 2 != 0 ) return number;
return number + 1;
}
int digitA = evenUp(number%10);
return evenUp( number / 10 ) * 10 + digitA;
}
/**
* This function prints out the difference
* between the new number and the original number
*
*/
int main()
{
int number = getNumber();
int evenUpNumber = evenUp( number );