
C/C++
Задание по C++
Ввести натуральное число n и вычислить его


#include
using namespace std;
int main() {
double result = 0.0;
int n;
cin >> n;
for (int i = 1; i <= n; i++)
result += 1*1.0 / i;
cout << result;
}
using namespace std;
int main() {
double result = 0.0;
int n;
cin >> n;
for (int i = 1; i <= n; i++)
result += 1*1.0 / i;
cout << result;
}
int n;
double s = 0.0;
cin >> n;
for (int i = n; i >= 1; --i) { s += 1.0 / i; }
cout << s;
Если начинать от n и двигаться к 1 получаем меньшую ошибку вычислений.
double s = 0.0;
cin >> n;
for (int i = n; i >= 1; --i) { s += 1.0 / i; }
cout << s;
Если начинать от n и двигаться к 1 получаем меньшую ошибку вычислений.
Делаем цикл только при n<20, где он, собственно, и нужен, а для бо́льших значений переменной n, где никакие циклы для достижения точности, близкой к машинной, естественно, не нужны, используем формулу для частичных сумм гармонического ряда:
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
unsigned long long i, n;
double s, c = 0.5772156649015328606, a, S;
cout.precision(16);
for (;;)
{
cout << "n » ";
cin >> n;
s = 0.;
a = 1. / n / n;
if (n < 20)
{
for (i = 1; i <= n; i++) s += 1. / i;
cout << s << endl;
}
else cout << log(n) + c + 0.5 / n *
(1 - 1. / (6 * n) * (1 - a * (0.1 - a *
(1. / 21. - a * (0.05 - a / 55.))))) << endl;
}
}
Действительно, если n равно, например, квинтиллиону, то такую сумму через цикл будут вычислять одни лишь только сумасшедшие!. (•‿•)

#include <iostream>
#include <cmath>
using namespace std;
int main()
{
unsigned long long i, n;
double s, c = 0.5772156649015328606, a, S;
cout.precision(16);
for (;;)
{
cout << "n » ";
cin >> n;
s = 0.;
a = 1. / n / n;
if (n < 20)
{
for (i = 1; i <= n; i++) s += 1. / i;
cout << s << endl;
}
else cout << log(n) + c + 0.5 / n *
(1 - 1. / (6 * n) * (1 - a * (0.1 - a *
(1. / 21. - a * (0.05 - a / 55.))))) << endl;
}
}
Действительно, если n равно, например, квинтиллиону, то такую сумму через цикл будут вычислять одни лишь только сумасшедшие!. (•‿•)

Похожие вопросы
- Нужна помощь с выполнением заданий в C++
- Задание на C/C++
- Помогите решить задание на c++
- Задание на C++. Помощь с кодом.
- 24 задание егэ, C++
- Помощь с заданием на c++
- Помогите решить задание на C++
- Информатика задание по c++
- Помогите понять суть задания на C++, написать программу с такой задачей:
- Задание на c++ ответить на вопросы и написать код