Завдання
Написати програму, що виконує наступні дії:
1) Генерує за до генератора випадкових чисел 10 символів
латинського алфавіту.
2) З отриманих символів будує впорядковане бінарне дерево,
відсортоване у заданому порядку відповідно до напряму проходження
дерева.
3) Відображає отримане дерево на екрані.
4) Здійснює пошук серед елементів дерева значення введеного з
клавіатури та виводить на екран повідомлення про номер знайденого
елемента згідно порядку проходження дерева. Якщо такого елемента
нема, то програма виводить повідомлення про його відсутність.
Порядок проходження дерева визначається відповідно до варіанта
згідно таблиці 6. Порядок сортування елементів дерева за зростанням
для парних варіантів та за зменшенням для непарних.
Таблиця 6.
Порядок проходжен-
ня дерева
Варіант
Висхідний 1 4 7 10 13 16 19 22 25 28
Низхідний 2 5 8 11 14 17 20 23 26 29
Прямий 3 6 9 12 15 18 21 24 27 30
МЕНІ ПОТРІБНИЙ (ВАРІАНТ 8 (НИЗХІДНИЙ))
ДО ТЬ БУДЬЛАСКА
Все слова/анаграммы, которые можно составить из слова "сканер"
Из "сканер" можно составить 58 слов из 2,3,4,5 букв.
Слова из 2 букв, составленные из комбинации "сканер" (12 слов):
ан ар ас ер ка кн кр на не нс ре се
Слова из 3 букв, составленные из комбинации "сканер" (22 слова):
акр аре арк аск ера кар кеа кен кер кнр нар нас нес рак рен рнк сак сан сен сер сна сне
Слова из 4 букв, составленные из комбинации "сканер" (13 слов):
акне енка каре керн крае кран крен раек река саек саке сена сера
Слова из 5 букв, составленные из комбинации "сканер" (11 слов):
аксен анкер аскер кенар нарек насек нерка серка серна скарн скена
Объяснение:
// Example program
#include <iostream>
#include <string>
int main()
{
int k[30];
for(int i = 0; i < 30; i ++) //заполняем случайными числами
k[i] = rand();
int min_sum = 999999999;
int num1, num2;
for(int i = 0; i < (30 - 1); i ++) //цикл поиска, i меняется от начала
//до предпоследнего элемента, чтобы не выйти
//за пределы при обращении к i + 1 элементу
{
int sum = k[i] + k[i+1];//очередная сумма
if(sum < min_sum) //сравниваем ее с текущим минимумом
{//если она меньше, то
min_sum = sum;//обновляем текущую сумму
num1 = i; num2 = i + 1;//обновляем номер
}
}
//на выходе из цикла в min_sum и num1 и num2 имеем самые минимальные номера
std::cout << "min_sum = " << min_sum << " nomer1 = " << num1 <<" nomer2 = " << num2;
}