Convert a number into negative base representation in C++


In this tutorial, we will be discussing a program to convert a number into its negative base representation.

For this we will be provided with a number and the corresponding negative base. Our task is to convert the given number into its negative base equivalent. We are allowing only values between -2 and -10 for negative base values.

Example

 Live Demo

#include <bits/stdc++.h>
using namespace std;
//converting integer into string
string convert_str(int n){
   string str;
   stringstream ss;
   ss << n;
   ss >> str;
   return str;
}
//converting n to negative base
string convert_nb(int n, int negBase){
   //negative base equivalent for zero is zero
   if (n == 0)
      return "0";
   string converted = "";
   while (n != 0){
      //getting remainder from negative base
      int remainder = n % negBase;
      n /= negBase;
      //changing remainder to its absolute value
      if (remainder < 0) {
         remainder += (-negBase);
         n += 1;
      }
      // convert remainder to string add into the result
      converted = convert_str(remainder) + converted;
   }
   return converted;
}
int main() {
   int n = 9;
   int negBase = -3;
   cout << convert_nb(n, negBase);
   return 0;
}

Output

100

Updated on: 06-Jan-2020

152 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements