Задачи по C++. Вычислить сумму ряда чисел 1 + 1/2 + 1/3 + 1/4 +… + 1/n

Задачи по C++

Условие задачи : Вычислить сумму ряда чисел 1 + 1/2 + 1/3 + … + 1/n, где n вводиться пользователем.

Сложность : легкая .

Решение задачи :

И так задача у нас с вами не сложная так что давай те её быстро разберем.

Для начала как всегда создадим каркас нашей программы и попросим пользователя ввести число :

#include <iostream> // подключаем библиотеку ввода и вывода
using namespace std ; // используем именное пространство std

int main()
{
    setlocale(LC_ALL, "Russian"); // включаем русский язык
    float summa ; // переменная для суммы ряда
    int n ; // длина ряда

    cout << "Введите длину ряда : " ; cin >> n ; // просим ввести число

    system("PAUSE"); // чтобы программа не закрывалась
    return 0 ; // возвращаем функции main() ноль
}

Дальше нам нужно написать цикл, мы ввели длину ряда , т.е. переменную n. Она у нас будет являться границой цикла.

В самом цикле мы будем к текущей сумме прибавлять 1 / i , т.е :

for (int i = 1; i <= n; i ++) {
   summa = summa + (double)1/i;
}

Т.е. мы оформляем цикл, переменной i мы присваиваем 1 , если бы сначала она была равна нулю, тогда программа не работала, потому что на ноль делить нельзя.

Также до начала работы цикла нам нужно переменной summa присвоить, т.к. перед тем как работать с переменной надо присвоить её какое-то значение.

summa = 0; // пишем выше цикла

Давайте посмотрим на работу цикла . Допустим мы ввели число 3 и у нас в переменной n содержится число 3.
У нас пошел цикл :

1-й проход :

for (int i = 1; i <= n; i ++) {
summa = 0 + (double)1/1; // будет 1
}

2-й проход :

for (int i = 2; i <= n; i ++) {
summa = 1 + (double)1/2; // будет 1,5
}

3-й проход :

for (int i = 3; i <= n; i ++) {
summa = 1,5 + (double)1/3; // будет где-то 1,83333
}

Вот так у нас будет работать цикл, осталось только вывести результат.

Весь код программы :

#include <iostream>  // подключаем библиотеку ввода и вывода
using namespace std ; // используем именное пространство std

int main()
{
    setlocale(LC_ALL, "Russian");
    float summa ;
	int n ;

	cout << "Введите длину ряда : " ; cin >> n ;

	summa = 0;

	for ( int i = 1 ; i <= n ; i++ ) {
		summa = summa + (double)1/i;
	}

	cout << "Сумма ряда = : " << summa << endl;

    system("PAUSE"); // чтобы программа не закрывалась
    return 0 ; // возвращаем функции main() ноль
}

cyber
Оцените автора
CyberLesson | Быстро освоить программирование Pascal и C++. Решение задач Pascal и C++
Добавить комментарий