Задали курсовую по данной теми, а я изучал питон в надежде на то что можно писать на любом языке, но оказалось наоборот, так что можете помочь и написать код для перевода чисел в разные системы счисления на с++. Сразу говорю бедный студент денег нету
def convenrtation(number, nstart=10, nfinish=10): if isinstance(number, str): i = int(number, nfinish) else: i = int(number) letters = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" if i < nstart: return letters[i] else: return convenrtation(i // nstart, nstart) + letters[i % nstart] number = input("Введите число: ") sistema_start = int(input("Введите из какой системы счисления: ")) sistema_finish = int(input("Введите в какую систему счисления: ")) print(convenrtation(number, sistema_finish, sistema_start)) Python def convenrtation(number, nstart=10, nfinish=10): if isinstance(number, str): i = int(number, nfinish) else: i = int(number) letters = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" if i < nstart: return letters[i] else: return convenrtation(i // nstart, nstart) + letters[i % nstart] number = input("Введите число: ") sistema_start = int(input("Введите из какой системы счисления: ")) sistema_finish = int(input("Введите в какую систему счисления: ")) print(convenrtation(number, sistema_finish, sistema_start))
Misodzi, Проблема с проверкой типа аргумента "isinstance" в том что плюсы не скриптовый язык и там это проблематично, поэтому код на питоне будет без бессмысленной проверки, пойдёт? def convenrtation(i, nstart, nfinish): letters = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" if i < nfinish: return letters[i] else: return convenrtation(i // nfinish, nstart, nfinish) + letters[i % nfinish] number = input("Введите число: ") sistema_start = int(input("Введите из какой системы счисления: ")) sistema_finish = int(input("Введите в какую систему счисления: ")) i = int(number, sistema_start) print(convenrtation(i, sistema_start, sistema_finish)) Python def convenrtation(i, nstart, nfinish): letters = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" if i < nfinish: return letters[i] else: return convenrtation(i // nfinish, nstart, nfinish) + letters[i % nfinish] number = input("Введите число: ") sistema_start = int(input("Введите из какой системы счисления: ")) sistema_finish = int(input("Введите в какую систему счисления: ")) i = int(number, sistema_start) print(convenrtation(i, sistema_start, sistema_finish))
Misodzi, В общем если пойдёт, то вот C++ эквивалент того питон кода что я написал: #include <iostream> #include <string> using namespace std; string convenrtation(int i, int nstart, int nfinish) { string letters = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; if (i < nfinish) return string(1, letters[i]); else return convenrtation(i / nfinish, nstart, nfinish) + letters[i % nfinish]; } int main() { string number; cout << "Введите число: "; cin >> number; string sistema_start; cout << "Введите из какой системы счисления: "; cin >> sistema_start; string sistema_finish; cout << "Введите в какую систему счисления: "; cin >> sistema_finish; int nstart = stoi(sistema_start); int nfinish = stoi(sistema_finish); int i = stoi(number, nullptr, nstart); cout << convenrtation(i, nstart, nfinish); return 0; } C #include <iostream> #include <string> using namespace std; string convenrtation(int i, int nstart, int nfinish) { string letters = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; if (i < nfinish) return string(1, letters[i]); else return convenrtation(i / nfinish, nstart, nfinish) + letters[i % nfinish]; } int main() { string number; cout << "Введите число: "; cin >> number; string sistema_start; cout << "Введите из какой системы счисления: "; cin >> sistema_start; string sistema_finish; cout << "Введите в какую систему счисления: "; cin >> sistema_finish; int nstart = stoi(sistema_start); int nfinish = stoi(sistema_finish); int i = stoi(number, nullptr, nstart); cout << convenrtation(i, nstart, nfinish); return 0; }