Вычитание выполнено в шестеричной системе счисления.
Объяснение:
Мы видим в данном выражении цифры до 4. Из этого следует, что система счисления использует не менее 5 цифр. То есть, она как минимум - пятиричная. Будем подбирать по порядку системы счисления и вычислять их значения.
Пятиричная система счисления:
1. Переводим в десятичную систему счисления:
102 = 25 * 1 + 5 * 0 + 1 * 2 = 25 + 0 + 2 = 27
14 = 5 * 1 + 1 * 4 = 5 + 4 = 9
2. Вычисляем в десятичной системе счисления:
27 - 9 = 18
3. Переводим в пятиричную систему счисления:
18 = 33
Вывод: данная система счисления не подходит.
Шестеричная система счисления:
1. Переводим в десятичную систему счисления:
102 = 36 * 1 + 6 * 0 + 1 * 2 = 36 + 0 + 2 = 38
14 = 6 * 1 + 1 * 4 = 6 + 4 = 10
2. Вычисляем в десятичной системе счисления:
38 - 10 = 28
3. Переводим в шестеричную систему счисления:
28 = 44
Вывод: данная система счисления подходит.
УДАЧИ! ОБРАЩАЙТЕСЬ!
#include <iostream>
using namespace std;
int main()
{
string str;
cout << "Old string:\n";
getline(cin,str);//если cin >> str, то считывание лишь до первого пробела
for (int i=0; i < str.length(); i++) //таким образом перемещаемся по элементах строки
{
if (str[i] == '.')// если в тексте найдено точку...
{
if (str[i + 1] == '.' && str[i + 2] == '.') // ...если дальше есть две точки подряд...
i+=2;//...то идти дальше: i+=2 здесь и i++ в условии цикла - итого перепрыгнуть через те две точки (i+=3)
else //если дальше нет двух точек подряд...
{
for (int j = 0; j < 2; j++)// ...то по одной...
{
str.insert(i, ".");// ..."создать" их, используя функцмю str.insert(pos,key), где первый аргумент - позиция вышенайденной точки, перед которой "создаём" точку (вставляем 2-й аргумент)
i++;//мы сейчас на новосозданной точке, поэтому идти дальше: переместиться на один символ вперёд - итого мы сейчас на той точке, которую мы не создавали и которая была в Old string
}
}}}
cout << "New string =\n" << str;
return 0;
}