Поговаривали, будто давным-давно кто-то из Туков взял себе жену из эльфов. Глупости, конечно, но и до сих пор во всех Туках и в самом деле проскальзывало что-то не совсем хоббитовское: время от времени кто-нибудь из клана Туков пускался на поиски приключений.
Вот и Бильбо, единственный сын Беладонны Тук, в замужестве Бэггинс, по виду и всем повадкам точная копия своего солидного благопристойного папаши, получил от Туков в наследство какую-то странность, которая только ждала случая себя проявить.
Напишите программу, которая будет искать во введенных строках странность в любом виде (достаточно проверить подстроку странност). А если найдет, то выведет среднее арифметическое их длин.
Формат ввода
Вводятся строки, пока не будет введена строка ЭЛЬФ.
Формат вывода
Вывести среднее значений длин строк, в которых есть странность. Если таких строк нет, вывести 0. Ничего округлять не нужно.
ПИТОН
#include <iostream>
using namespace std;
int main()
{
int n, i;
cout << "n = ";
cin >> n;
int a[n], b[n], c[2 * n], ac = 0, bc = 0;
cout << "введите а: ";
for (i = 0; i < n; i++) {
cin >> a[i];
}
cout << "введите b: ";
for (i = 0; i < n; i++) {
cin >> b[i];
}
cout << endl;
for (i = 0; i < 2 * n; i++) {
if (i % 2 == 0) { // парное
c[i] = a[ac];
ac++;
}
else { // непарное
c[i] = b[bc];
bc++;
}
cout << c[i] << ' ';
}
return 0;
}
sym = {10: 'A', 11: 'B', 12: 'C', 13: 'D', 14: 'E', 15: 'F'}
def exp_in(n, g):
ret = 1
while n ** ret < g:
ret += 1
return ret - 1
def base(n, to_base):
''' 2 <= to_base <= 16 '''
if not 2 <= to_base <= 16:
raise ValueError('2 <= to_base <= 16')
ret = ''
for e in range(exp_in(to_base, n), -1, -1):
t = to_base ** e
c = n // t
ret += sym.get(c, str(c))
n %= t
return ret
n, b = [int(input(x)) for x in ['Число: ', 'Степень (2 <= n <= 16): ']]
print('{} (10) = {} ({})'.format(n, base(n, b), b))