Доброго времени суток!
Есть задачи.
№1
Даны два целых числа A и В. Выведите все числа от A до B включительно, в порядке возрастания, если A < B, или в порядке убывания в противном случае.
Входные данные
Вводятся два целых числа.
Выходные данные
Выведите ответ на задачу.
Примеры
входные данные
1
10
выходные данные
1 2 3 4 5 6 7 8 9 10
Даны рекомендации
В этой задаче необходимо определить, какое из значений a и b больше, и в зависимости от этого увеличивать или уменьшать индексную переменную. Нужно было учесть, что значение b тоже должно быть выведено, поэтому в функции range() требовалось в качестве границы указать b+1 в случае возрастания индексной переменной и b 1 в случае убывания. В случае, когда значения a и b равны, выполнится ветка else и выведется единственное значение, поэтому отдельно этот случай можно не рассматривать.
Но такое решение считается недостаточным. Где проблема?..
a=int(input())
b=int(input())
if a<b:
for i in range(a,b+1):
print(i)
else:
for i in range(a,b-1,-1):
print(i)
№ 2
Напишите программу, которая по данному числу n от 1 до 9 выводит на экран n флагов. Изображение одного флага имеет размер 4×4 символов, между двумя соседними флагами также имеется пустой (из пробелов) столбец. Разрешается вывести пустой столбец после последнего флага. Внутри каждого флага должен быть записан его номер — число от 1 до n.
Входные данные
Вводится натуральное число.
Выходные данные
Выведите ответ на задачу.
Примеры
входные данные
3
выходные данные
+___ +___ +___
|1 / |2 / |3 /
|__\ |__\ |__\
| | |
входные данные
1
выходные данные
+___
|1 /
|__\
|
Рекомендации:
Для решения задачи используется операция умножения строки на число (см. занятие 1) для печати первой, третьей и четвертой строк. Для печати второй строки используется цикл for. Для того чтобы печать в цикле производилась в строку, а не в столбик, спецификатор end оператора печати принимает значение пробела ‘ ‘. После цикла для перевода строки перед печатью третьей строки используется пустой print(). Также нужно помнить, что для печати символа ‘\’ нужно использовать два таких символа подряд ‘\\’, так как сам по себе он является служебным.
Но на решение ниже тоже говорит, что что-то не так.
n = int(input())
print('+___ ‘*n)
for i in range(n):
print(’|', i+1, ‘ /’, sep='', end=' ‘)
print()
print(’|__\\ ‘*n)
print(’| '*n)
№ 3
Улитка ползет по вертикальному шесту высотой h метров, поднимаясь за день на a метров, а за ночь спускаясь на b метров. На какой день улитка доползет до вершины шеста?
Входные данные
Программа получает на вход натуральные числа h, a, b.
Выходные данные
Программа должна вывести одно натуральное число. Гарантируется, что a>b .
Примеры
входные данные
10
3
2
выходные данные
8
Разбор задачи «Улитка»
В общем случае улитка продвигается за сутки на расстояние c = a – b и, казалось бы, нам надо решить задачу аналогичную предыдущей: округлить вверх результат деления h на c.
Однако если улитка днем успевает доползти до конца столба, то спускаться ей уже не нужно, то есть при h ≤ a ответом является один день.
Вычтем из h значение a, решим задачу для оставшейся величины и прибавим к ответу 1.
Получаем следующую формулу:
1 + (h – a + c – 1)//c = 1 + (h – b – 1)//c
Соответствующее решение проходит все тесты в проверяющей системе, но … является неправильным теперь уже для языка Python для случая 0 < h ≤ b, так как выдает 0 (второе слагаемое в этом случае равно –1).
Как это можно исправить?
№4
Жомарт любит наблюдать за звездами и создавать из них различные геометрические фигуры. Небо предоставляется в виде декартовой системы координат, а звезды на ней точками. На этот раз Жомарта интересует вопрос, сколько различных прямоугольных треугольников, у которого катеты параллельны осям координат, можно составить с помощью звезд на небе.
Формат входного файла
В первой строке задается N — количество звезд на небе (3 N 300000). В каждой из следу- ющих N строк заданы целые X, Y (|X, Y| 109) — координаты соответствующей звезды.
Формат выходного файла
Выведите ответ к задаче.
Примеры
Входные данные
3
0 0
1 0
0 1
Выходные данные
1
Входные данные
4
0 0
1 0
0 1
1 1
Выходные данные
4
Очень прошу, подскажите, пожалуйста, что надо исправить в программах 1-3, чтобы они нормально работали? И как решить задачку № 4?
Спасибо большое всем, кто откликнется.