Вопрос задан 22.11.2023 в 05:52. Предмет Информатика. Спрашивает Пиняков Иван.

Программа с использованием рекурсии и контейнера 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; }
0 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;

}

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Код на языке C++ с использованием рекурсии и контейнера list

```cpp #include #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 << "Введи систему счисления (от 2 до 9): "; cin >> p; while (p < 2 || p > 9) { cout << "Нужно ввести систему счисления от 2 до 9: " << endl; cin >> p; } int result = translateNumberSystem(num, p); cout << "Число " << num << " в системе счисления " << p << " равно: " << result; return 0; } ```

Описание кода

* Программа запрашивает у пользователя натуральное число (`num`) и систему счисления (`p`) от 2 до 9. * `translateNumberSystem` - рекурсивная функция, которая преобразует число `num` из десятичной системы счисления в систему счисления `p`. * Если `num` равно 0, функция возвращает 0. * В противном случае, функция возвращает остаток от деления `num` на `p`, прибавленный к результату вызова функции `translateNumberSystem` для числа `num / p` и системы счисления `p`. * В `main` функции вызывается `translateNumberSystem` для числа `num` и системы счисления `p`, и результат выводится на экран.

Пример работы программы:

``` Введи натуральное число: 123 Введи систему счисления (от 2 до 9): 5 Число 123 в системе счисления 5 равно: 443 ```

В данном примере, число 123 в десятичной системе счисления переводится в пятеричную систему счисления, и результат равен 443.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос