за 3 задачи!
Python
1.Условие
Иван и Петр любят играть в игру “Камень-Ножницы-Бумага”(правила в примечании).
Они пишут свой выбор на листочке в виде целого числа:
1 - Камень
2 - Ножницы
3 - Бумага
Напишите программу определяющую кто победил.
Формат входных данных
На первой строке вводится целое n - выбор Ивана (1 ≤ n ≤ 3).
На второй строке вводится целое m - выбор Петра (1 ≤ m ≤ 3).
Формат выходных данных
Выведите на экран одну из фраз:
“Победил Иван”
“Победил Петр”
“Ничья”
Примечания
Правила игры “Камень-Ножницы-Бумага”
Камень побеждает Ножницы
Бумага побеждает Камень
Ножницы побеждают Бумагу
входные данные выходные данные
2
3
Победил Иван
1
1
Ничья
2.Условие
На полу было разбросано множество кубиков, на каждом была написана цифра от 0 до 9. Николай решил собрать кубики, как раз в углу комнаты он заметил 10 коробок. Угадайте что написано на коробках? Правильно цифры от 0 до 9.
Складывая кубики в коробки Николай выяснил что кубики волшебные, и вот в чем заключалось из волшебство:
Кубик можно было положить только в коробку с такой же цифрой
Если вы складывали кубик в коробку, в которой уже был кубик, то оба кубика исчезали
Узнайте, сколько осталось кубиков, после того как они все были разложены.
Формат входных данных
На первой строке вводится целое n - количество кубиков в комнате (1 ≤ n ≤105).
Далее вводятся n целых чисел d - номера на кубиках (0 ≤ d ≤9)
Формат выходных данных
Выведите на экран количество оставшихся кубиков
входные данные выходные данные
5
2
0
2
0
3.Условие
Иван и Петр решили провести турнир по их любимой игре “Камень-Ножницы-Бумага” (правила в примечании).
Каждый берет листок бумаги и пишет 10 целых чисел от 1 до 3:
1 - Камень
2 - Ножницы
3 - Бумага
Затем они сравнивают свои результаты попарно, т.е. первое число на листе Ивана сравнивается с первым числом Петра. Победителю записывается 1 победное очко и сравнение продолжается для всех 10 чисел.
Напишите программу подсчитывающую победные очки друзей и определяющую победителя.
Формат входных данных
Сначала вводится 10 целых чисел n - варианты Ивана (1 ≤ n ≤ 3)
Затем вводится 10 целых чисел m - варианты Петра (1 ≤ m ≤ 3)
Все числа вводятся на отдельных строках
Формат выходных данных
Выведите на экран одну из фраз формата:
“7:3 - Победил Иван”
“4:5 - Победил Петр”
“5:5 - Ничья”
,где цифры означают количество побед одержанных каждым игроком.
Примечания
Правила игры “Камень-Ножницы-Бумага”
Камень побеждает Ножницы
Бумага побеждает Камень
Ножницы побеждают Бумагу
входные данные выходные данные
3
1
2
2
3
1
1
2
2
2
3
1
1
3
2
2
1
1
3
2
3:3 - Ничья
3
3
3
2
3
3
1
2
1
1
2
3
1
1
2
1
3
3
3
1
Для решения этой задачи нам понадобится сравнить выборы Ивана и Петра и определить победителя согласно правилам игры.
Пункт 1.1: Чтение входных данных
Мы должны считать два числа: выбор Ивана (n) и выбор Петра (m). Чтобы считать числа из строки ввода, мы можем использовать функцию input(). Но так как условие задачи говорит о формате, в котором на каждой строке записано только одно число, то можем использовать функцию int(input()) для считывания чисел.
Код для чтения входных данных:
```python
n = int(input()) # выбор Ивана
m = int(input()) # выбор Петра
```
Пункт 1.2: Определение победителя
Теперь мы можем сравнить выборы Ивана и Петра и определить победителя. Для этого можно использовать условные операторы if-elif-else.
Возможные варианты победителя:
- Если выбор Ивана (n) равен выбору Петра (m), то это ничья.
- Если (n == 1 and m == 2) или (n == 2 and m == 3) или (n == 3 and m == 1), то победил Иван.
- Во всех остальных случаях победил Петр.
Код для определения победителя:
```python
if n == m:
print("Ничья")
elif (n == 1 and m == 2) or (n == 2 and m == 3) or (n == 3 and m == 1):
print("Победил Иван")
else:
print("Победил Петр")
```
2. Задача о складывании кубиков в коробки
Для решения этой задачи нам нужно посчитать количество оставшихся кубиков после того, как они все были разложены в коробки.
Пункт 2.1: Чтение входных данных
Сначала мы считываем количество кубиков в комнате (n). Затем считываем n чисел, обозначающих номера на кубиках.
Код для чтения входных данных:
```python
n = int(input()) # количество кубиков в комнате
cubes = [] # список для хранения номеров на кубиках
for _ in range(n):
cube = int(input()) # номер на кубике
cubes.append(cube) # добавляем номер в список
```
Пункт 2.2: Подсчет оставшихся кубиков
Теперь мы можем приступить к подсчету оставшихся кубиков. Для этого нужно создать словарь, где ключами будут номера на кубиках, а значениями - количество кубиков с таким номером. Затем будем идти по списку номеров на кубиках и уменьшать соответствующее значение в словаре. Если значение становится меньше или равно нулю, удаляем его из словаря. В конце считаем сумму значений в словаре и выводим ее.
Код для подсчета оставшихся кубиков:
```python
boxes = {} # словарь для хранения количества кубиков в коробках
for cube in cubes:
if cube in boxes:
boxes[cube] -= 1
if boxes[cube] <= 0:
del boxes[cube]
else:
boxes[cube] = 1
remaining_cubes = sum(boxes.values()) # сумма значений словаря
print(remaining_cubes) # количество оставшихся кубиков
```
3. Задача о подсчете победителя в турнире игры "Камень-Ножницы-Бумага"
Для решения этой задачи нам нужно подсчитать победные очки Ивана и Петра и определить победителя.
Пункт 3.1: Чтение входных данных
Сначала мы считываем 10 чисел, обозначающих варианты Ивана. Затем считываем 10 чисел, обозначающих варианты Петра.
Код для чтения входных данных:
```python
ivan_choices = [] # список для хранения вариантов Ивана
for _ in range(10):
choice = int(input()) # вариант Ивана
ivan_choices.append(choice) # добавляем вариант в список
peter_choices = [] # список для хранения вариантов Петра
for _ in range(10):
choice = int(input()) # вариант Петра
peter_choices.append(choice) # добавляем вариант в список
```
Пункт 3.2: Подсчет победных очков и определение победителя
Теперь мы можем приступить к подсчету победных очков. Для этого будем сравнивать соответствующие варианты Ивана и Петра и увеличивать соответствующее победное очко. Затем сравниваем победные очки и определяем победителя.
Код для подсчета победных очков и определения победителя:
```python
ivan_score = 0 # победные очки Ивана
peter_score = 0 # победные очки Петра
for i in range(10):
if ivan_choices[i] == peter_choices[i]:
continue # ничья, переходим к следующей итерации цикла
elif (ivan_choices[i] == 1 and peter_choices[i] == 2) or (ivan_choices[i] == 2 and peter_choices[i] == 3) or (ivan_choices[i] == 3 and peter_choices[i] == 1):
ivan_score += 1
else:
peter_score += 1
if ivan_score > peter_score:
print(f"{ivan_score}:{peter_score} - Победил Иван")
elif ivan_score < peter_score:
print(f"{ivan_score}:{peter_score} - Победил Петр")
else:
print(f"{ivan_score}:{peter_score} - Ничья")
```
Таким образом, мы получили подробные решения для каждой из трех задач с обоснованиями и пошаговым решением, чтобы ответ был понятен школьнику.