Вопрос задан 27.09.2023 в 12:35. Предмет Информатика. Спрашивает Малютин Слава.

Как решить задачу про шахматную доску и зерна в питоне через While? ❗СРОЧНООО ❗​

0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Нұртаза Асем.

В этой задаче на первую клетку шахматной доски кладут одно зерно, на каждую следующую- в два раза больше. Надо посчитать, сколько всего зерна получится на всех 64 клетках. Так то это число считается вот так:  2^64 - 1   но можно и циклом посчитать, раз уж задано.

Вот эта программа:

n = 1

s = 1

c = 1

while c<64:

   n *= 2

   s += n

   c += 1

print(s)

По легенде, жил в Индии мудрец, который и придумал шахматы. Однажды он показал эту игру правителю страны. Тому игра так понравилась, что он сказал- бери в награду всё что захочешь, мол богатства мои бесконечны. Мудрец решил доказать правителю что это не так. Он попросил с виду ничтожную цену: за первую клетку шахматной доски одно зерно пшеницы, за вторую- два зерна, за третью- четыре, и так далее (удваивая количество). Правитель удивился такой малой награде, но велел посчитать и выдать мудрецу положенное зерно. Спустя неделю правитель стал спрашивать, почему так долго считают. Казначей показал ему свои расчёты, и ответил, что оплатить невозможно- такого количества зерна нет на всей земле!

За все 64 клетки шахматной доски создателю игры потребовалось бы выдать 18 446 744 073 709 551 615 зёрен пшеницы!  (по другой версии, речь шла о рисе)

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Вы можете решить задачу про шахматную доску и зерна с использованием цикла while в Python. Задача заключается в том, чтобы вычислить общее количество зерен на шахматной доске, начиная с одного зерна на первой клетке и удваивая количество зерен на каждой следующей клетке.

Вот пример кода, решающего эту задачу:

python
# Инициализируем переменные total_grains = 0 current_square = 1 grains_on_square = 1 # Пока текущая клетка на доске не станет больше 64 (всего 64 клетки на шахматной доске), # продолжаем удваивать количество зерен на текущей клетке и перемещаться к следующей клетке. while current_square <= 64: total_grains += grains_on_square grains_on_square *= 2 current_square += 1 # Выводим общее количество зерен на доске print("Общее количество зерен на шахматной доске:", total_grains)

Этот код использует цикл while, чтобы удваивать количество зерен на каждой клетке и продолжать до тех пор, пока не будет посчитано общее количество зерен на доске. Результат будет выводиться на экран.

Обратите внимание, что общее количество зерен на шахматной доске будет очень большим числом (больше, чем 18 квинтиллионов), поэтому оно может не поместиться в обычные целочисленные переменные. В Python можно использовать библиотеки для работы с большими числами, такие как math или sympy, чтобы работать с такими большими значениями, если это необходимо.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос