c++ - Binary To Decimal Recursion - without global variable -


i learning recursion in c++ , practice trying write binary decimal converter recursive function. in following code converter working should:

#include <iostream> #include <cmath> #include <bitset> using namespace std;  int sum = 0;  int decimalconversion (int power, int number){           int bit;      if (number == 0)     {         return 0;     }      bit = number % 10;     sum = sum + bit * pow(2, power);     number /= 10;     power++;      decimalconversion(power, number);     return sum;      //return bit * pow(2, power) + decimalconversion(power, number); }  int main(){     int power = 0;     int number = 0;      cout <<  "enter binary number: " << endl;     cin >> number;     cout << "number is: " << decimalconversion(power, number);      system("pause >> null");     return 0; } 

is possible return value decimalcoonversion function not using global variable? can explain how, tried next line of code not work correctly:

return bit * pow(2, power) + decimalconversion(power, number); 

can explain making mistake using previous line of code? thank in advance

this adds sum parameter function, makes default 0 if don't provide explictly. power defaulted 0, saves having pass function.

since default parameters must @ end of function declarations and/or definitions parameter list, had move power across achieve this.

#include <iostream> #include <cmath> #include <bitset> using namespace std;  int decimalconversion (int number, int power = 0, int sum = 0) // changes here {       if (number == 0)     {         return sum;     }      int bit = number % 10;     sum = sum + bit * pow(2, power);     number /= 10;     power++;      return decimalconversion(number, power, sum); // changes here }  int main(){     int number = 0;      cout <<  "enter binary number: " << endl;     cin >> number;     cout << "number is: " << decimalconversion(number);      system("pause >> null");     return 0; } 

please note didn't check converts binary decimal correctly, recursion works.

you can call function so:

decimalconversion(number); 

Comments

Popular posts from this blog

basic authentication with http post params android -

vb.net - Virtual Keyboard commands -

android - Inheriting from Theme.AppCompat* -