Загрузка...

Пиздецовая задача с рекурсией на C++

Тема в разделе C/C++ создана пользователем Network 24 ноя 2023. 200 просмотров

  1. Network
    Network Автор темы 24 ноя 2023 1549 2 май 2023
    [IMG]
    Ой, бля заебался уже с этой задачей, никак не поддается. Кто решит получит сотку и плюсик в карму.
    Похуй как вы сделаете, даже с GPT, но главное, чтоб правильно работало - идентично результату работы программы из задачи.
    + Не использовать вектора и другие директивы, онли iostream разрешен.
     
  2. ChatGPT
    ChatGPT 24 ноя 2023 2250 14 мар 2023
    Network, привет! Я могу помочь с задачей. Можешь описать её подробнее?
     
    1. Посмотреть предыдущие комментарии (1)
    2. ChatGPT
      Network, извини, если мои предыдущие ответы не были полезными. Я постараюсь лучше понять твою задачу и помочь тебе. Пожалуйста, опиши её подробнее.
    3. Network Автор темы
      ChatGPT, охх, я больше на это не поведусь...
    4. ChatGPT
      Network, я сожалею, что не смог помочь тебе. Если у тебя возникнут другие вопросы или проблемы, не стесняйся обратиться ко мне. Я всегда готов помочь.
  3. Network
    Network Автор темы 24 ноя 2023 1549 2 май 2023
    Заебался, но решил:duck_flashbacks:

    C
    #include <iostream>



    int monks[600][3] = { 0 };
    int teachers[600] = { 0 };

    using namespace std;
    void findTeacher(int monkNumber) {
    if (monkNumber == 1) {
    cout << "1 - Святой Павел\n";
    return;
    }

    int teacher = teachers[monkNumber];
    if (teacher == 0) {
    cout << monkNumber << " – не монах\n";
    }
    else {
    cout << monkNumber << " – монах, его учитель ";
    findTeacher(teacher);
    }
    }

    int findCommonTeacher(int monk1, int monk2) {
    int teacher1 = monk1;
    int teacher2 = monk2;

    while (teacher1 != teacher2) {
    if (teacher1 == 0 || teacher2 == 0) {
    cout << ((teacher1 == 0) ? monk1 : monk2) << " – не монах\n";
    return 0;
    }

    if (teacher1 > teacher2) {
    teacher1 = teachers[teacher1];
    }
    else {
    teacher2 = teachers[teacher2];
    }
    }
    cout << monk1 << " и " << monk2 << " – оба монахи, и их общий учитель " << teacher1 << endl;
    }

    int main() {
    setlocale(0, "");
    int n;
    cout << "Введите кол-во строк исходных данных: ";
    cin >> n;
    cout << "Введите монаха и его учеников:\n";
    for (int i = 0; i < n; ++i) {
    int monk, child1, child2, child3;
    cin >> monk >> child1 >> child2 >> child3;
    monks[monk][0] = child1;
    monks[monk][1] = child2;
    monks[monk][2] = child3;

    if (child1 != 0) teachers[child1] = monk;
    if (child2 != 0) teachers[child2] = monk;
    if (child3 != 0) teachers[child3] = monk;
    }

    int q;
    cout << "Введите кол-во строк варианта: ";
    cin >> q;
    cout << "Введите вариант задания и входные данные для него:\n";
    for (int i = 0; i < q; ++i) {
    int code, monk1, monk2;
    cin >> code;

    if (code == 1) {
    cin >> monk1;
    findTeacher(monk1);
    }
    else if (code == 2) {
    cin >> monk1 >> monk2;
    findCommonTeacher(monk1, monk2);
    }
    }
    }
     
    24 ноя 2023 Изменено
Загрузка...
Top