Юлианна245
25.05.2022 11:40

Одно задание по языку Си. Нужна

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
Aannddrreeyy22
06.04.2020 17:54
#include <iostream>
using namespace std;
int main()
{
setlocale (0,"");
int n1,n2,n3,p1,p2,p3;
cout<<"введите количество учеников в каждом классе"<<endl;
cout<<"1-";
cin>>n1;
cout<<"2-";
cin>>n2;
cout<<"3-";
cin>>n3;
    p1=n1/2; if (n1%2!=0) p1++;
    p2=n2/2; if (n2%2!=0) p2++;
    p3=n3/2; if (n3%2!=0) p3++;
cout<<"для первого класса - "<<p1<<endl;
cout<<"для второго класса - "<<p2<<endl;
cout<<"для третьего класса - "<<p3<<endl;
return 0;
}
0,0(0 оценок)
Ответ:
P4k3T
25.11.2020 08:43
Учитывая, что 8 букв можно переставить примерно 40 тысячами можно просто запустить поиск в ширину, сохранить для всех перестановок то, из какой строчки они получились, и потом восстановить ответ для строчки abcdefgh.

Код на python 3:
from queue import Queue

to_process = Queue()
to_process.put(("edghcbfa", None))
prec = {}

while not to_process.empty():
    s, prev = to_process.get()
    if s in prec:
        continue
    for i in range(7):
        for j in range(i + 1, 8):
            if i == 0:
                next_s = s[j::-1] + s[j+1:]
            else:
                next_s = s[:i] + s[j:i-1:-1] + s[j+1:]
            if next_s not in prec:
                to_process.put((next_s, s))
    prec[s] = prev

current = "abcdefgh"
print(current)
while prec[current] is not None:
    current = prec[current]
    print(current)

Вывод программы:
abcdefgh
edcbafgh
edcbhgfa
edbchgfa
edghcbfa

Соответственно, ответ такой:
G B
B C
H A
E A
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота