• Предмет: Информатика
  • Автор: grigoranangelina10
  • Вопрос задан 4 месяца назад

Допоможіть будьласочка !!!!

Приложения:

lozromanik: Якою мовою програмування?
grigoranangelina10: Українською
lozromanik: Python, Pascal, C++?
grigoranangelina10: Python

Ответы

Ответ дал: lozromanik
2

Відповідь:

#1-й спосіб вирішення задачі(за умовою)

def input_var(string):

   while True:

       try:

           var = int(input(string))

           return var

       except ValueError:

           print("Введено неправильне значення цілого числа. Будь ласка, повторіть введення.")

N = input_var("Введіть кількість рядів яблук:")

apples = 0

rows = 0

for rows in range(N):

   apples+=rows+1

print("Кількість яблук в {0} рядах = {1}".format(N,apples))

#2-й спосіб - за допомогою формули

N = input_var("Введіть кількість рядів яблук:")

total_apples = (N*(N+1))//2

print("Кількість яблук в {0} рядах = {1}".format(N,total_apples))

Пояснення:

У першому способі оголошується змінна N, яка заповнюється даними користувача, потім оголошується зміна apples для загальної кількості яблук та змінна rows для проходження по циклу for у ролі лічильника. Далі у циклі for ми додаємо щоразу до загальної кількості яблук значення ряду rows+1, тим самим відтворюючи ситуацію 1-й ряд -- 1 яблуко, 2-й ряд -- 2 яблука і так далі, потім виводимо результат.

Оскільки цю задачу можна вирішити формулою, то замість підрахунку загальної кількості яблук в циклі, ми можемо уявити яблука, що складені пірамідою, як половина прямокутника зі сторонами N та N+1. Наприклад, візьмемо N = 3. Яблуки в цих 3-ох рядах можна скласти як прямокутний трикутник. Доєднавши ще один такий тпрямокутний трикутник, ми можемо утворити прямокутник 3 на 4. Відтак, 3*4 буде 12, але пам'ятаємо, що ми взяли 2 таких прямокутних трикутника, тому ділимо 12 навпіл, виходить 6. І дійсно, 1+2+3 = 6. Відтак, ми можемо вирахувати кількість яблук замість N ітерацій циклу for одним кроком, що буде набагато ефективніше.

Вас заинтересует