Напишите функцию mountains(), которая проверит маршрут путешествия. Функция принимает произвольное число позиционных аргументов-строк и произвольное количество именованных параметров, среди которых могут быть такие:
min_length – рассматривать строки не меньше указанной длины;
presence – рассматривать строки, в которых есть указанная буква;
absence – рассматривать строки, в которых нет указанной буквы;
larger – рассматривать строки, лексикографически большие указанной строки.
Функция возвращает суммарную длину подходящих строк и самую маленькую лексикографически строку.
Ввод
trip = ['Talcahuano', 'Alps', 'Cordillera', 'Chile', 'Peru']
conditions = {'min_length': 5, 'presence': 'a', 'absence': 'i', 'larger': 'Business'}
print(*mountains(*trip, **conditions))
Вывод
10 Talcahuano
#include <iostream>
#include <vector>
int main()
{
int m,firstcnt,inp,X;
std::vector<int> vc;
// Русский язык в консоли
setlocale(LC_ALL, "Russian");
std::cout << "Размер вектора: ";
std::cin >> m;
firstcnt = m;
for (int i = 0; i < m; i++)
{
std::cout << i << " элемент вектора: ";
std::cin >> inp;
vc.push_back(inp);
}
std::cout << "Элемент X: ";
std::cin >> X;
for (int i = 0; i < m; i++)
{
if (vc[i] % X == 0)
{
auto iter1 = vc.cbegin();
std::cout << "Вставьте новый элемент вектора после " << i- (m-firstcnt) << " элемента: ";
std::cin >> inp;
vc.insert(iter1 + i + 1, inp);
m++;
i++;
}
}
std::cout << "Результат: ";
for (int i = 0; i < m; i++)
std::cout << vc[i] << " ";
return 0;
}
121 имеет 3 разряда, значит основание однозначно меньше 10 и больше 2. Подходят 3, 4, 6, 8.
Учитывая, что в числе 121 три разряда, значит число 48 делилось всего три раза.
Число 8 не подойдет, т.к. 48/8=6, значит будет всего два деления.
Число 3 не подойдет, т.к. 48/3 = 16, 16/3=5 - то есть тут будет больше трёх знаков.
Число 4 не подойдет, т.к. 48/4=12, а 12 делится на 4 без остатка, но, судя по числу, во втором делении остаток должен быть равен 2.
Остаётся число 6. Проверим
49/6=8 |1
8/6 = 1 |2
1/6=0 |1
121(6)