Tutorial
TEST - Life, the Universe, and Everything
Остановить ввод после ввода числа 42
Вход: Целые числа, каждое начинается с новой строки
Выход: Все числа до числа 42
Решение
my @result;
while (<>){
$_ == 42 ? last : push @result, $_;
}
print "$_" for @result;
$ perl divsum.pl
321
421
421
42
321
421
421
DIVSUM - todo
Сумма делителей числа. Пример 20 имеет 5 чисел на которые делиться число нацело, их сумма - 1 + 2 + 4 + 5 + 10 = 22
Вход: Целые числа, каждое начинается с новой строки
Выход: Сумма делителей для каждого входного числа
Алгоритм
1. В цикле пока пользователь не введет ctrl+d
A. Получить число n
B. Установить sum = 0
С. В цикле от 1-го до n
i. Если n делиться на i без остатка, сложить i с sum
D. Добавить sum в массив result
2. Вывести result
STRHH - Half of the half
Вход: Первый параметр - число строк t (1<=t<=100) Остальные - строки каждый с новой строки
Выход: Для каждого веденного слова, вывести буквы которые стоят на четных позициях до середины слова. Первый символ должен всегда быть
Пример:
Input:
4
your
progress
is
noticeable
Output:
y
po
i
ntc
Алгоритм
1. Получить и установить count = кол-во веденных строк
2. В цикле от 1 до count
A. Получить строку
B. Установить str_half = ''
C. Разбить строку по символам и положить в массив A
D. В цикле от 0 до (кол-во эл. в массиве / 2)
i. Если i делится на 2 с остатком. Т.е. число является не четным, добавляем в строку str_half эл. A[i]
E. Добавляем в массив для вывода
3. Выводим результат
Решение
my $count = <>;
my @result;
for (1..$count){
chomp( my $str = <> );
my $str_half = '';
my @array = split '', $str;
for (my $i = 0; $i < int(@array / 2); $i++) {
$str_half .= $array[$i] unless $i % 2;
}
push @result, $str_half;
}
print "$_\n" for @result;
HS12HDPW - Hidden Password
Декодировать строку с помощью ключевых слов
Вход:
- Кол-во тест кейсов - слов которые нужно расшифорвать
- Для каждого кейса - число ключевых слов
- Сами ключевые слова разделенные пробелом
- Зашифрованное слово из 64 символов
Выход: расшифрованные слова по кол-ву кейсов. Каждая с новой строки
Пример
Input:
2
2
qwe345 rf3Arg
XSBSRasdew9873465hkldsfsalndfvnfq489uqovkLKJHaeDaae555Sk5asdpASD
3
2S4J5K 111111 lrtb2A
isimgsow45ipfgisd56wfgngdfcdkgc7kKKKkuuJJgfstdygQdWORQADFSLKF2K8
Output:
keep
coding
Explanation
Let us have a look at the first 6-tuple: qwe345
char. ASCII code
q 113 = 01110001B
w 119 = 01110111B
e 101 = 01100101B
3 51 = 00110011B
4 52 = 00110100B
5 53 = 00110101B
a(blue bits) = 110111B = 55
b(green bits) = 101110B = 46
Алгоритм
1. Получить кол-во кейсов
2. Для каждого кейса
A. Получить ключевое слово
B.