Назад
Зміст
Вперед
Додаткові задачі
Приклад 1
Дано дійсне a та натуральне n. Вивести на екран числа:
a1 a2 a3 ...an-1 an. Наприклад, для a=3 та n=4 це будуть такі числа:
3 9 27 81
Результати роботи програми
| Ввід | Відповідь |
| 3 4 | 3 9 27 81 |
Програма
#include <iostream>
using namespace std;
#include <cstdlib>
int main()
{
int x = rand(); // Генерація першого випадкового числа
int y = rand(); // Генерація другого випадкового числа
// Виведення згенерованих чисел та максимального можливого значення RAND_MAX
cout << x << " " << y << " " << RAND_MAX;
return 0; // Завершення програми
}
Приклад 2
Дано дійсне a та натуральне n. Знайти суму:
S=a1+a2+a3+...+an-1+an. Наприклад, для a=3 та n=4 це буде така сума:
S=3+ 9 +27+ 81=120
Ця програма відрізняється від попередньої тим, що потрібно не виводити на екран проміжні значення змінної p, а додавати їх.
Будемо використовувати для цього змінну S.
Ясно, що у циклі замість оператора cout будемо виконувати оператор накопичення суми.
А виводити на екран будемо значення вже після циклу.
Результати роботи програми
Програма
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int i, n; double a, p, s=0;
cin >> a >> n; // Введення основи a та степеня n
for (i=1; i<=n; i++)
{
p=pow(a, i); // Обчислення a в степені i
s=s+p; // Додавання результату до суми
}
cout << "s=" << s << " "; // Виведення суми
return 0;
}
Приклад 3
Дано дійсне a та натуральне n. Знайти суму:
S=a1-a2+a3-a4+...an.
Наприклад, для a=3 та n=5 це буде така сума:
S=3 - 9 +27 - 81 + 243 = 183
Ця програма повинна знаходити знакозмінну суму. Тому доданок у сумі (x) розділимо на два співмножники: знак доданка (z) та степінь (p). Кожний співмножник будемо обчислювати окремо, а потім перемножать.
Змінні:
Вхідні:
- n – ціле число
- a – дійсне число
Вихідні:
- s – сума (дійсного типу).
Проміжні:
- i –параметр циклу (цілого типу)
- z – знак доданка (цілого типу).
- p=aі- степінь
- x=z*p - доданок
Алгоритм
- Спочатку вводимо числа n і а.
- Ми будемо знаходити суму. Тому присвоїмо початкове значення 0 змінній s.
- Знак доданка будемо встановлювати оператором z=-z.
Перший доданок має знак плюс, тому встановимо початкове значення знака z=-1.
- У циклі будемо виконувати такі дії:
- Змінюємо знак доданка на протилежний.
- Знаходимо степень
- Знаходимо доданок
- Виводимо доданок на екран
- Накопичуємо доданок у суму
- Коли цикл закінчиться, виводимо знайдене значення суми на екран
Програма
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int i, n, z=-1; double x, a, p, s=0;
cin >> a >> n; // Введення основи a та степеня n
for (i=1; i<=n; i++)
{
z=-z; // Зміна знака для чергування додавання та віднімання
p=pow(a, i); // Обчислення a в степені i
x=z*p; // Обчислення x як добуток знака та степеня
cout << "x=" << x << " "; // Виведення поточного значення x
s=s+x; // Додавання x до суми
}
cout << "\ns=" << s; // Виведення кінцевої суми
return 0;
}
Приклад 4
Дано дійсне a та натуральне n. Знайти суму:
Змінні:
Вхідні:
- n – натуральне число (цілого типу, бо число натуральне)
- а – дійсне число (за умовою)
Вихідні:
- s – сума (дійсного типу).
Проміжні:
- i –параметр циклу (цілого типу)
- z– знак доданка (цілого типу).
- k -дробовий коефіцієнт (дійсного типу)
- p– для обчислення степеню an (дійсного типу).
- x– доданок (дійсного типу).
Алгоритм
- Спочатку вводимо натуральне число n.
- Ми будемо знаходити суму. Тому присвоїмо початкове значення 0 змінній s.
- Кожний доданок суми складається з знака, степні aі, а також дробу 1/(і+1).
Перший доданок має знак плюс, тому встановимо початкове значення знака z=-1.
- У циклі будемо виконувати такі дії:
- Оператором z=-z змінюємо знак доданка на протилежний.
- Оператором p=pow(a,i) знаходимо степень.
- Оператором k=1.0/(i+1) знаходимо дробовий коефіцієнт. Використовуємо 1.0, щоб ділення було не цілим.
- Оператором x=z*k*p знаходимо доданок
- Оператором s=s+x накопичуємо суму
- Коли цикл закінчиться, виводимо знайдене значення суми на екран .
Результати роботи програми
| Ввід | Вивід |
| 2 3 | 1.667 |
| 3 4 | -10.950 |
Програма
#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;
int main()
{
int i, n, z = -1; double k, x, a, p, s = 0;
cin >> a >> n; // Введення значення основи a та степеня n
cout << fixed; // Встановлення фіксованого формату виводу
cout.precision(3); // Встановлення точності виводу до 3 знаків після коми
for (i = 1; i <= n; i++) // Цикл обчислення суми від i=1 до n
{
z = -z; // Зміна знака для чергування додатних і від'ємних членів
p = pow(a, i); // Обчислення a в степені i
k = 1.0 / (i + 1); // Обчислення коефіцієнта k = 1 / (i + 1)
x = z * k * p; // Обчислення поточного члена x
cout << x << " "; // Виведення значення x
s = s + x; // Додавання x до загальної суми s
}
cout << "\ns=" << s; // Виведення значення суми s
return 0;
}
Приклад 5
Дано натуральне n. Обчисліть значення S=1!+2!+3!+4!+...+n!
n!=1*2*3…n (читається n факторіал).
Для обчислення факторіалу використовується операція множення.
Для знаходження факторіалу спочатку потрібно помножити на 2, потім результат на 3,
потім результат на 4 і т.д.
У якості цього числа зручно використовувати параметр циклу.
Тоді оператор, який повторюється x=x*i.
| Програма | Екран |
| Ввід | Вивід |
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
long int i, n, x=1, s=0;
cin >> n; // Введення значення n
for (i=1; i<=n; i++) // Цикл від 1 до n
{
x=x*i; // Обчислення факторіалу (x = x * i)
cout << "x=" << x << " "; // Виведення поточного значення x
s=s+x; // Додавання x до суми s
}
cout << "\ns=" << s; // Виведення кінцевої суми s
return 0;
}
|
8
|
1 2 6 24 120 720 5040 40320 s=46233
|
Приклад 6
Дано натуральне n. Знайти добуток S=n2*(n+1)2*(n+2)2*(n+3)2*...*(n+n)2
При n=1 S=12*(1+1)2=4
При n=2 S=22*(2+1)2(2+2)2=576
| Програма | Екран |
| Ввід | Вивід |
#include <iostream>
#include <cmath>
using namespace std;
#include <cstdio>
int main()
{
long int i, n; float x, k, s=1;
cin >> n; // Введення значення n
for (i=0; i<n; i++) // Цикл від 0 до n-1
{
k=n+i; // Обчислення k як суми n та i
x=pow(k, 2); // Обчислення x як k піднесеного до квадрату
cout << x << " "; // Виведення значення x
s=s*x; // Множення s на x
}
printf ("\nS=%.0f", s); // Виведення значення s з форматуванням
return 0;
}
|
4
|
16 25 36 49 64
S=45158400
|
Варіанти задач
Варіант 1
- Знайдіть суму кубів всіх цілих чисел від 20 до 40.
- Дано дійсне число а і натуральне число n. Обчисліть
a*(a-n)*(a-2*n)*(a-3*n)…*(a-n2). Наприклад, для а=2 та n=4 добуток дорівнює:
2*(2-4)*(2-2*4)*(2-3*4)*(2-4*4)=3360.
Варіант 2
- Знайдіть суму квадратів всіх цілих чисел від А до 50.
- Дано натуральне число n. Обчисліть добуток (1+2)*(1+2+3)*…*(1+2+…+n). Наприклад, для n =4 числа будуть такі: 1, 1+2, 1+2+3, 1+2+3+4 . Їх добуток дорівнює 180.
Варіант 3
- Знайдіть суму квадратів всіх цілих чисел від 1 до А.
- Дано цілі додатні числа A та B. Вивести всі цілі числа від A до B включно, при цьому кожне число виводити стільки разів, яке його значення. (наприклад, для А=3 В=6 відповідь буде така: 333444455555666666).
Варіант 4
- Знайдіть суму квадратів всіх цілих чисел від А до В.
- Дано цілі числа A та B. Вивести всі цілі числа від A до B включно, при цьому число A потрібно виводити 1 раз, число A + 1 потрібно виводити 2 рази і т. д. (наприклад, для А=3 В=6 відповідь буде така: 3445556666).
Варіант 5
- Дано натуральне число n. Обчисліть суму S=4+8+12+...+4*n.
- Обчисліть з точністю до 8 знаків після крапки:
Варіант 6
- Дано натуральне число n. Обчисліть з точністю до 6 знаків після крапки суму
.
- Обчисліть з точністю до 8 знаків після крапки:
Варіант 7
- Дано натуральне число n. Обчисліть з точністю до 6 знаків після крапки суму
- Дано натуральне число n. Якщо n непарне, то обчисліть добуток 1*3*5*7...*n, а якщо n парне, то добуток 2*4*6...*n.
Варіант 8
- Дано дійсне число A та натуральне число N. Знайти суму 1 + A + A2 + A3 + … + AN.
- Дано N дійсних чисел A1, A2, …, AN. Вивести на екран такі числа:
(A1)N, (A2)N–1, …, (AN–1)2, AN.
Варіант 9
- Дано дійсне число A та натуральне число N. Знайти суму
1– A + A2 – A3 + … + (–1)N AN .
- Дано N дійсних чисел A A1, A2, …, AN. Вивести на екран такі числа:
A1, (A2)2, …, (AN–1)N–1, (AN)N.
Варіант 10
- Дано натуральне число n. Обчисліть з точністю до 6 знаків після крапки суму
- Знайти добуток 1.1 * 1.2 * 1.3* …*1.9 з дев’ятьма знаками після крапки.
Варіант 11
- Дано натуральне число n. Обчисліть з точністю до 5 знаків після крапки суму
- Знайти суму 1.1 – 1.2 + 1.3 – 1.4…+1.9 з одним знаком після крапки.
Варіант 12
- Дано натуральне число х. Обчисліть з точністю до 5 знаків після крапки суму
- Дано натуральне число n. Надрукуйте n чисел ai=i*(i+1)*(i+2)*...*(i+i) при i=1, 2, ...n та знайдіть їх суму. Наприклад, для n=3 це будуть такі числа:
a1=1*(1+1)=2;
a2=2*(2+1)*(2+2)=24;
a3=3*(3+1)*(3+2)*(3+3)=360.
Їх сума буде 386.
Варіант 13
- Дано натуральне число х. Обчисліть з точністю до 5 знаків після крапки суму
- Дано натуральні числа n, x, a. Обчисліть y для n множень.
Наприклад, для n=5 y=(((((x+a)*x+a)*x+a)*x+a)*x+a)*x+a.
Варіант 14
- Дано натуральне число n. Обчисліть суму S=1! + 2! + 3! + … + N!
- Написати програму, яка виводить на екран квадрат Піфагора – таблицю множення у вигляді:
1 2 3 4 5 6 7 8 9 10
----------------------------------------
1 ¦ 1 2 3 4 5 6 7 8 9 10
2 ¦ 2 4 6 8 10 12 14 16 18 20
3 ¦ 3 6 9 12 15 18 21 24 27 30
4 ¦ 4 8 12 16 20 24 28 32 36 40
5 ¦ 5 10 15 20 25 30 35 40 45 50
6 ¦ 6 12 18 24 30 36 42 48 54 60
7 ¦ 7 14 21 28 35 42 49 56 63 70
8 ¦ 8 16 24 32 40 48 56 64 72 80
9 ¦ 9 18 27 36 45 54 63 72 81 90
10 ¦ 10 20 30 40 50 60 70 80 90 100
|
Варіант 15
- Дано натуральне число n. Обчисліть з точністю до 5 знаків після крапки суму
- Дано натуральне число n. Обчисліть добуток з n множників Р=(1+2)*(3+4+5)*(6+7+8+9)*(10+11+12+13+14)*....
Варіант 16
- Дано цілі додатні числа N та K. Знайдіть суму 1K + 2K + … + NK.
Наприклад, для N=3 и K=2 сума дорівнює 12 + 22 + 32=14.
- Дано натуральне число n. Обчисліть суму з n доданків s=1*2+3*4*5+6*7*8*9+10*11*12*13*14+... Наприклад, для n=3 це буде така сума: s=1*2+3*4*5+6*7*8*9=3086
Варіант 17
- Дано натуральне число N. Обчисліть суму S=1N + 2N–1 + … + N1.
Наприклад, для N=4 сума дорівнює S=14 + 23 + 32+41=22.
- Дано натуральне число n. Обчисліть з точністю до 5 знаків після крапки добуток перших n множників
.
Наприклад, для n=3 це буде:
Назад
Зміст
Вперед