Форум программистов, компьютерный форум, киберфорум
Алгоритмы
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
13 / 13 / 2
Регистрация: 10.09.2011
Сообщений: 179

задача повышенной сложности учитель дал

13.12.2011, 16:51. Показов 2083. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Два робота A и B двигаются по плоскости, с заданной на ней прямоугольной декартовой системой координат (ось Y направлена снизу вверх, ось X – слева направо). Каждый робот может двигаться вниз, вверх, вправо или влево на N позиций, изменяя значение соответствующей координаты на N, где N – натуральное число.

За один ход любой робот выполняет следующую последовательность действий:
Продвигается вперед на N позиций,
Изменяет направление движения, повернувшись на 90 градусов по часовой стрелке,
Вычисляет новое значение своего N по формуле N=N+6.

Роботы делают свои ходы по очереди. Первым ходит робот A.

Известно, что перед началом движения:
Робот A находился в точке с координатами (1024, 2048), направление движения в его первый ход – вниз,
Робот B находился в точке с координатами (3328, 4352), направление движения в его первый ход – вверх,
Значение N для каждого робота перед первыми ходами равно 1.

Столкновением роботов считается ситуация, когда один из роботов после очередного хода попадает в точку, в которой в этот момент уже находится другой робот.

Сколько завершенных ходов совершил робот A до столкновения с роботом B? В ответе укажите целое число.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.12.2011, 16:51
Ответы с готовыми решениями:

Задача повышенной сложности: Отчетность
Максимальное количество баллов: 40 Входной файл: input.txt Выходной файл: output.txt Время на тест: 2с Однажды Дмитрий...

Задача повышенной сложности
Нужно решить хотя бы одно из заданий ,лучше все и пожалуйста ,если можно,побольше объяснению по кодам

задача повышенной сложности
Ребят, можете помочь, над этой задачей уже час сижу, что-то никак не выходит с ней разобраться.

1
Эксперт С++
 Аватар для Mr.X
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
14.12.2011, 16:10
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
/////////////////////////////////////////////////////////////////////////////////////////
//Два робота A и B двигаются по плоскости, с заданной на ней прямоугольной декартовой 
//системой координат (ось Y направлена снизу вверх, ось X – слева направо). 
//Каждый робот может двигаться вниз, вверх, вправо или влево на N позиций, изменяя 
//значение соответствующей координаты на N, где N – натуральное число.
//
//За один ход любой робот выполняет следующую последовательность действий:
//Продвигается вперед на N позиций,
//Изменяет направление движения, повернувшись на 90 градусов по часовой стрелке,
//Вычисляет новое значение своего N по формуле N=N+6.
//
//Роботы делают свои ходы по очереди. Первым ходит робот A.
//
//Известно, что перед началом движения:
//Робот A находился в точке с координатами (1024, 2048), направление движения в его 
//первый ход – вниз,
//Робот B находился в точке с координатами (3328, 4352), направление движения в его 
//первый ход – вверх,
//Значение N для каждого робота перед первыми ходами равно 1.
//
//Столкновением роботов считается ситуация, когда один из роботов после очередного хода 
//попадает в точку, в которой в этот момент уже находится другой робот.
//
//Сколько завершенных ходов совершил робот A до столкновения с роботом B? В ответе укажите 
//целое число. 
/////////////////////////////////////////////////////////////////////////////////////////
#include <complex>
#include <iostream>
/////////////////////////////////////////////////////////////////////////////////////////
typedef std::complex<int>  T_coordinates;
/////////////////////////////////////////////////////////////////////////////////////////
enum  T_direction
{
    LEFT_DIRECTION,
    RIGHT_DIRECTION,
    UP_DIRECTION,
    DOWN_DIRECTION
};
/////////////////////////////////////////////////////////////////////////////////////////
class T_robot
{
    int             X_;
    int             Y_;
    T_direction     direction_;
    int             N_;
    int             moves_counter_;
    //-----------------------------------------------------------------------------------
public:
    //-----------------------------------------------------------------------------------
    T_robot
        (            
            int          X,
            int          Y,
            T_direction  direction            
        )
        :
        X_              (X),
        Y_              (Y),
        direction_      (direction),
        N_              (1),
        moves_counter_  (0)
    {}
    //-----------------------------------------------------------------------------------
    void  move()
    {
        switch(direction_)
        {
        case LEFT_DIRECTION:
            X_ -= N_;
            direction_ = UP_DIRECTION;
            break;
 
        case UP_DIRECTION:
            Y_ += N_;
            direction_ = RIGHT_DIRECTION;
            break;
 
        case RIGHT_DIRECTION:
            X_ += N_;
            direction_ = DOWN_DIRECTION;
            break;
 
        case DOWN_DIRECTION:
            Y_ -= N_;
            direction_ = LEFT_DIRECTION;
            break;
        }
        N_ += 6;
        ++moves_counter_;
    }
    //-----------------------------------------------------------------------------------
    T_coordinates  coordinates()
    {
        return  T_coordinates(X_, Y_);
    };
    //-----------------------------------------------------------------------------------
    int  get_moves_counter()
    {
        return  moves_counter_;
    };
};
/////////////////////////////////////////////////////////////////////////////////////////
int main()
{
    std::locale::global(std::locale(""));
    T_robot  A_robot
    (
        1024,
        2048,
        DOWN_DIRECTION
    );
 
    T_robot  B_robot
    (
        3328, 
        4352,
        UP_DIRECTION
    );
 
    bool  A_move = true;
    while( A_robot.coordinates() != B_robot.coordinates() )
    {
        A_move ? A_robot.move() : B_robot.move();
        A_move = !A_move;
    }
    std::cout   << "Робот A сделал до столкновения с роботом B "
                << A_robot.get_moves_counter()
                << " ходов."
                << std::endl;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.12.2011, 16:10
Помогаю со студенческими работами здесь

Писал код который дал учитель, и $_POST не работает:(
1 код. &lt;html&gt; &lt;head&gt; &lt;meta charset=&quot;UTF-8&quot;&gt; &lt;title&gt;&lt;/title&gt; &lt;/head&gt; &lt;body&gt; &lt;form...

задание повышенной сложности
есть мысли как решить этот таск?

Одномерный массив повышенной сложности
В вектора А обменять последний четный и первый неченый отрицательные элементы; заменить затем положительные элементы вектора суммой его...

Решение задач повышенной сложности
никак не разберусь, срочно надо до 23:00 01.11.2019

Задачи повышенной сложности с использованием массивов
Ртутные термометры могут использоваться для измерения темпера-туры до – 39,4 Со. Используя информацию о минимальной темпера-туре за каждый...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru