Приклади задач з циклом for
Приклади задач з циклом for
for i in range(0, 100): # змінна i "крокуватиме" від числа 0 до 99
if i % 2 == 0: # перевіряємо чи число парне, тобто остача від ділення на 2 дорівнює нулю
print(i) # виводимо число, яке задовольняє умову
або
for i in range(0, 100, 2): # третій аргумент відповідає за крок параметра циклу (у попередньому варіанті крок був 1)
print(i)
import numpy # підключаємо бібліотеку з математичними функціями
A = float(input('Введіть A: ')) # вводимо початок проміжку (може бути дробом, тому тип float)
B = float(input('Введіть B: ')) # вводимо кінець проміжку
k = float(input('Введіть крок k: ')) # вводимо крок
for i in numpy.arange(A, B, k): # функція, аналогічна вбудованій range(), але яка приймає не тільки цілі значення
y = 9 * i ** 3 + 8
print(y)
n = int(input('Введіть кількість членів послідовності: '))
A = int(input('Задайте шукане число: '))
for i in range(n):
member = float(input('Введіть елемент послідовності: '))
if member == A:
print('Послідовність містить число ', A)
break
else:
print('Послідовність не містить число ', A)
n = int(input('n = ')) # вводимо число n
i = 1 # визначаємо початкове значення для змінної, яка буде основою кожного доданка
suma = 0 # визначаємо початкове значення суми
while i <= n: # початок циклу! перевіряємо, чи i <= n
suma += i**2 # початок тіла циклу, яке матиме дві команди! тут виконуємо піднесення до степеня
i += 1 # змінюємо в тілі циклу змінну i: збільшуємо на одиницю (еквівалентно до i = i + 1)
print(suma) # виводимо суму !!!зверніть увагу, що ця команда ПОЗА межами циклу, бо пробілів немає
Вказівка. Можна використати алгоритм Евкліда, який заснований на тому, що НСД не змінюється, якщо від більшого числа відняти менше. Оскільки більше з двох чисел постійно зменшується, повторне виконання цього кроку дає все менші числа, поки одне з них не дорівнюватиме нулю. Коли одне з чисел дорівнюватиме нулю, то те, що залишилось, і є НСД.
num1 = int(input('Введіть перше натуральне число: '))
num2 = int(input('Введіть друге натуральне число: '))
if num1 == 0:
print('НСД(%s,%s) = %s' % (num1, num2, num2)) # повертаємо значення другого числа
while num2 != 0:
if num1 > num2:
num1 = num1 - num2
else:
num2 = num2 - num1
print('НСД(%s,%s) = %s' % (num1, num2, num1)) # повертаємо значення першого числа
Вказівка. Легко помітити, що при послідовному обчисленні членів послідовності нам не потрібно «розписувати» усі доданки за визначенням, і щоб отримати черговий член послідовності, достатньо на кожному кроці додавати два попередніх отриманих результати.
1 спосіб
f1 = 1 # присвоюємо змінним f1 та f2 значення перших двох членів
f2 = 1
n = int(input("Введіть номер члена послідовності Фібоначчі: ")) # вводимо номер шуканого члена послідовності
i = 0
while i < n - 2: # виконуємо цикл (n-2) разів, оскільки перших два члени уже визначені
f_sum = f1 + f2 # додаємо змінні f1 та f2 і присвоюємо суму змінній f_sum для тимчасового збереження даних
f1 = f2 # змінна f1 набуває значення f2
f2 = f_sum # змінна f2 набуває значення f_sum
i = i + 1 # змінна тіла циклу змінюється! — збільшується на одиницю
print(f2) # вводимо значення змінної f2
2 спосіб (менш раціональний, проте ілюстративний)
n = int(input('Введіть n: ')) # вводимо номер шуканого члена послідовності
if n == 1: # перший член повинен дорівнювати одиниці
print(1)
elif n == 2: # другий член теж повинен дорівнювати одиниці
print(1)
else: # якщо потрібно знайти член послідовності, відмінний від першого та другого:
i = 3 # визначаємо початковий номер члена послідовності для циклу (третій)
a = 1 # визначаємо значення перших двох елементів
b = 1
fib = 1 # визначаємо тимчасове значення змінної, у яку буде записуватись значення n-го члена
while i <= n: # початок циклу! перевіряємо, чи i <= n
fib = a + b # додаємо два попередні результати
a = b # замінюємо перше число другим, щоб "посунути" послідовність
b = fib # друге число набуває значення змінної для тимчасового зберігання даних
i += 1 # номер члена послідовності збільшується на 1
print(fib) # вводимо значення змінної fib
b = 6
q = 0.5
s = 6
while b > 0.6:
b = b * q
if b > 0.6:
s = s + b
print(b)
print('Сума членів прогресії =', s)
n = float(input('Введіть суму вкладених коштів: '))
v = float(input('Введіть відсоток: '))
v = v / 100
k = float(input('Введіть граничну суму: '))
r = 0
while True:
n = n + n * v
r += 1
if n >= k: break
print('Кількість років: ', r)