субота, 18 листопада 2017 р.

Тема 9
Цикл з лічильником. Вкладені цикли
Теоретична частина
При розв’язанні деяких задач необхідно у тілі циклу робити допоміжні обчислення або перевірки. Інколи для їх здійснення достатньо зробити арифметичну дію, а в інших випадках потрібно застосувати ще один цикл, який називаються вкладений. Розглянемо кілька прикладів.
Приклад 1. По даному дійсному числу а та натуральному n потрібно обчислити значення суми 1+а+а23+…+аn. У першому рядку дано дійсне число а, а в другому – натуральне число n. Вивести значення суми.
Вхід                                                           Вихід
0.5                                                               1.875
3

a=float(input())
n=int(input())
s=1
p=a
for i in range(1,n+1):
    p=p*i
    s=s+p
print(s)
Ще один варіант розв’язку:
a=float(input())
n=int(input())
s=0
for i in range(n+1):
     s+=a**i                             # те саме що s=s+a**i
print(s)

Приклад 2.
Дано натуральне число n. У наступних n рядках дано по одному цілому числу. Виведіть кількість серед цих чисел кратних 3.
Вхід                                           Вихід
4                                                 2
12
 -4
0
20

n=int(input())                    #  зчитуємо кількість чисел
k=0                                   #  початкова відповідь 0
for i in range(n):               #  повторюємо дії n раз
   a=int(input())                 # зчитуємо наступне число
if a%3==0:                       # перевіряємо подільність числа на 3
k+=1                                 # збільшуємо відповідь на 1
print(k)                             # виводимо відповідь
У наступному прикладі використовується вкладений цикл з параметром j, який змінюється в залежності від параметра і у зовнішньому циклі.
Приклад 3.
Дано натуральне число n (n≤9). Вивести числові східці, у якій і-ий рядок складається із чисел від 1 до і.
Вхід                                           Вихід
4                                                 1
                                                   12
                                                   123
                                                   1234
n=int(input())
for i in range(1,n+1):
    for j in range(1,i+1):
             print(j, end=’’)
    print()
У наступному прикладі використовується потрійний цикл.
Приклад 4.
Дано натуральне число n (n≤100). Вивести всі різні піфагорові трійки у порядку зростання чисел, що не перевищують числа n. Натуральні числа a, b і c, що задовольняють умову a2+b2=c2, називають піфагоровими. Наприклад, 3,4 і 5 є піфагоровою трійкою, бо 32+42=52.
Вхід                                           Вихід
10                                               3 4 5
                                                   6 8 10

n=int(input())
for a in range(1,n+1):
    for b in range(a,n+1):
       for c in range(b,n+1):
             if a**2+b**2==c**2:
                 print(a,b,c)

Практична частина
Завдання 9.1. Дано натуральне число n. У наступних n рядках дано по одному цілому числу. Виведіть кількість додатних серед цих чисел.
Вхід                                           Вихід
4                                                 2
12
 -4
0
20
Завдання 9.2. Дано натуральне число n. У наступних n рядках дано по одному цілому числу. Виведіть у одному рядку три цілих числа: кількість додатних чисел, кількість від’ємних чисел, кількість нулів.
Вхід                                           Вихід
4                                                 2 1 1
12
 -4
0
20
Завдання 9.3. Дано натуральне число n (0<n<10^6). Виведіть у один рядок всі дільники цього числа у порядку зростання.
Вхід                                           Вихід
6                                                 1 2 3 6
Завдання 9.4. Дано натуральне число (0<n<=10^6). Виведіть кількість дільників цього числа.
Вхід                                           Вихід
12                                               6
Завдання 9.5. Дано натуральне число (10^6<=n<=10^12). Виведіть кількість дільників цього числа.
Вхід                                           Вихід
1000005                                     16
 Завдання 9.6. Дано натуральне число (0<n<=10^6). Виведіть YES, якщо воно просте, і NO, якщо воно складене.
Вхід                                           Вихід
13                                              YES
Завдання 9.7. Розв'яжіть попередню задачу, якщо вхідні дані не перевищують 10^12 (1000000000000).
Завдання 9.8. Знайдіть всі натуральні розв’язки рівняння ax+by=c. В одному рядку дані три натуральних числа abc, що не перевищують 1000. Виведіть у порядку зростання першого кореня по два натуральних числа у кожен рядок – розв’язки даного рівняння. Якщо розв’язків немає, то нічого виводити не потрібно.
Вхід                                           Вихід
3 2 36                                         2 15
                                                   4 12
                                                   6 9
                                                   8 6
                                                   10 3
Завдання 9.9. Розв’яжіть попередню задачу, якщо вхідні дані не перевищують 1000000.
Завдання 9.10В одному рядку дано натуральні числа a і b (0<a<b<=10000). Вивести у одному рядку через пропуск у порядку зростання всі прості числа від a до b включно.
Вхід                                           Вихід
10 20                                          11 13 17 19

Немає коментарів:

Дописати коментар

Вітаю Вас, читачі мого блогу, який присвячений вивченню мови Python у школі. Даний курс розрахований на учнів 8 класу, що навчаються за пр...