Понесло на C++

Михаил Попов    31.12.2015 14:20    C++ , Алгоритмы     нет комментариев

Понесло на C++

Что то меня уже 2 дня подряд несет на C++. Еще один язык, который хочется освоить. Пока прохожу курс и решаю маленькие задачки. Вот решил опубликовать примеры задачек на операторы условия, которые сейчас решаю. Пока опубликую 3 задачки, если кому будет интересно, напишите в комментарии, опубликую еще. Включаю не весь код программ, а только основную часть. Оговорюсь, что сейчас не собираюсь учить C++ глубоко. Хочу освоить его поверхностно, т.к. при прохождении курса по алгоритмам встречал похожие задачи на C++  и не мог их до конца понять. Сейчас хочу освоить язык на базовом уровне, чтобы хотя бы понимать, о чем речь, глядя в код на C++. Иногда приходится на него смотреть. 

Задача №1

Даны три натуральных числа A, B, C. Определите, существует ли треугольник с такими сторонами. Если треугольник существует, выведите строку YES, иначе выведите строку NO.
Треугольник — это три точки, не лежащие на одной прямой.
Формат входных данных
Вводятся три числа.
Формат выходных данных
Выведите ответ на задачу.

Sample Input:
3 4 5
Sample Output:
YES

Решение

int a, b, c;
cin >> a >> b >> c;
if (a + b > c && a + c  > b  && b + c > a) {
    cout << "YES";
}
else {
    cout << "NO";
}

Задача №2

Даны три целых числа. Определите, сколько среди них совпадающих. Программа должна вывести одно из чисел: 3 (если все совпадают), 2 (если два совпадает) или 0 (если все числа различны).
Формат входных данных
Вводятся три числа.
Формат выходных данных
Выведите ответ на задачу.

Sample Input:
1 2 3
Sample Output:
0

Решение:

int a, b, c;
cin >> a >> b >> c;
if (a == b && a == c) {
    cout << 3;
}
else if (a == b || a == c || b == c) {
    cout << 2;
}
else {
    cout << 0;
}

Задача №3

Шахматная ладья ходит по горизонтали или вертикали. Даны две различные клетки шахматной доски, определите, может ли ладья попасть с первой клетки на вторую одним ходом.
Формат входных данных
Программа получает на вход четыре числа от 1 до 8 каждое, задающие номер столбца и номер строки сначала для первой клетки, потом для второй клетки.
Формат выходных данных
Программа должна вывести YES, если из первой клетки ходом ладьи можно попасть во вторую или NO в противном случае.

Sample Input:
4 4 5 5
Sample Output:
NO

P.S. Нужно помнить, что ладья может ходить на несколько клеток.
чтобы все получилось, горизонталь или вертикаль не должна измениться.

Решение

int x1, y1, x2, y2;
cin >> x1 >> y1 >> x2 >> y2;
if (x1 == x2 || y1 == y2) {
    cout << "YES";
}
else  {
    cout << "NO";
}

Изучаем цикл while на C++ Как выпустить свой продукт на 1С

0     0

blog comments powered by Disqus