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

Ответы на вопрос

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



Код на языке C++ с использованием рекурсии и контейнера list
```cpp
#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.


Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili