Предмет: Информатика, автор: alivija2212

С++ помогите сделать.
Заранее спасибо

Приложения:

Ответы

Автор ответа: alanik1
0
можно так: сумма всех единиц от 1 до n равна n, поэтому в цикле её прибавлять не будем, просто в конце добавим n. В цикле будем только считать дроби и всё складывать. цикл делаем из целочисленных переменных.

double sum1 (int n)  {  int i;
  double tmp, acc = 0.0;
  for (i = 1; i <= n; i++)  {
    tmp = (double)i; // преобразование типов    tmp *= tmp; // возведение в квадрат    acc += 1.0/tmp;  // добавляем дробь к аккумулятору  }  return acc + (double)n;  // в конце добавляем сумму единиц}
Второй способ: можно дроби привести к общему знаменателю:

(1 + cfrac{1}{n^2}) = cfrac{n^2+1}{n^2}

И уже такую штуку вычислять в цикле (в квадрат возводить, само собой, один раз на одну итерацию цикла). Возможно такой метод даст бОльшую точность при больших n, когда начнём приближаться к пределу по разрядной сетке, но тут на 100% не поручусь.

double sum2 (int n) {  int i;  double tmp, acc = 0.0;  for (i = 1; i <= n; i++)  {    tmp = (double)i;  // преобразование типов    tmp *= tmp;  // возведение в квадрат    acc += (tmp+1.0)/tmp;  // вычисление выражения и прибавление к аккумулятору  }  return acc;}


Автор ответа: alanik1
0
да что ж он код-то "съедает"... ((
Автор ответа: alanik1
0
https://paste.ee/p/BJtao
Автор ответа: clinteastwood2
0
1е задание
#include <iostream>
#include <cmath>
using namespace std;

int main()
{
float s = 0.f;
unsigned n;
cin >> n;
if (n < 0) {
cout << "Error!" << endl;
} else {
for (int i = 1; i <= n; ++i) {
s += 1 + (1 / pow(i, 2));
}
cout << s << endl;
}
return 0;
}
Автор ответа: clinteastwood2
0
https://ideone.com/ciWmpX
Похожие вопросы
Предмет: Французский язык, автор: romaigraetv
Предмет: История, автор: aliyaaquarius11
Предмет: Геометрия, автор: alexeyka20
Предмет: Математика, автор: Shefrok
Предмет: Математика, автор: amb1978