• Предмет: Информатика
  • Автор: yanakotic2004rus
  • Вопрос задан 2 месяца назад

программа с использованием рекурсии и контейнера list на языке C++ Изменить/упростить код
#include

using namespace std;

int translateNumberSystem(int num, int p)
{
if (num == 0)
{
return 0;
}
return (num % p + 10 * translateNumberSystem(num / p, p));
}


int main()
{
int num = 0;
cout << "Введи натуральное число: ";
cin >> num;

int p = 0;
cout << "\nВведи систему счисления (от 2 до 9): ";
cin >> p;
while (p < 2 || p > 9)
{
cout << "\nНужно ввести сист. счисления от 2 до 9: " << endl;
cin >> p;
}


int result = translateNumberSystem(num, p);

cout << "Число " << num << " в системе счисления " << p
<< " равно: " << result;

return 0;
}

Ответы

Ответ дал: GAUSS1
0

#include <iostream>

#include <vector>

using namespace std;

void translateNumberSystem(int num, int p, vector<int>& result)

{

   if (num == 0)

   {

       return;

   }

   translateNumberSystem(num / p, p, result);

   result.push_back(num % p);

}

int main()

{

   int num = 0;

   cout << "Введите натуральное число: ";

   cin >> num;

   int p = 0;

   cout << "\nВведите систему счисления (от 2 до 9): ";

   cin >> p;

   while (p < 2 || p > 9)

   {

       cout << "\nНужно ввести сист. счисления от 2 до 9: " << endl;

       cin >> p;

   }

   vector<int> result;

   translateNumberSystem(num, p, result);

   cout << "Число " << num << " в системе счисления " << p << " равно: ";

   for (int i = result.size() - 1; i >= 0; i--)

   {

       cout << result[i];

   }

   return 0;

}

Вас заинтересует