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

0 голосов
20 просмотров

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


image
image

Информатика (12 баллов) | 20 просмотров
0

Зач тебе с++, ява лучше

0

Надо просто на с++ сделать

Дано ответов: 2
0 голосов

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

double sum1 (int n)  {  int i;
  double tmp, acc = 0.0;
  for (i = 1; i <= n; i++)  {<br>    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;}<br>

(1.8k баллов)
0

да что ж он код-то "съедает"... ((

0
0 голосов

1е задание
#include
#include
using namespace std;

int main()
{
float s = 0.f;
unsigned n;
cin >> n;
if (n < 0) {
cout << "Error!" << endl;<br>} else {
for (int i = 1; i <= n; ++i) {<br>s += 1 + (1 / pow(i, 2));
}
cout << s << endl;<br>}
return 0;
}

(4.2k баллов)
0