Computer >> Máy Tính >  >> Lập trình >> C ++

Chuyển một số thành biểu diễn cơ sở âm trong C ++

Trong hướng dẫn này, chúng ta sẽ thảo luận về một chương trình chuyển đổi một số thành biểu diễn cơ sở phủ định của nó.

Đối với điều này, chúng tôi sẽ được cung cấp một số và cơ sở phủ định tương ứng. Nhiệm vụ của chúng ta là chuyển một số đã cho thành số tương đương với cơ số âm của nó. Chúng tôi chỉ cho phép các giá trị từ -2 đến -10 đối với các giá trị cơ bản âm.

Ví dụ

#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;
}

Đầu ra

100