А114а

Задача. Вычислить [latex]\sum_{i=1}^{100}{1/i^2}[/latex];

[latex]\sum_{i=1}^{100}{1/i^2}[/latex] Комментарий
1.63498 Тест пройден
Все довольно просто:

1) Программа задает функцию и её сумму;
2) Вычисляет сумму элементов функций  arr(i) в цикле(прибавляет к сумме asd каждое значение фунции arr(i) , где i от 1 до 100);
3) Выводит значение суммы.

Для проверки можете воспользоваться этой ссылкой

Related Images:

9 thoughts on “А114а

  1. Я уже писал многим, что для возведения чисел в квадрат использовать функцию pow не эффективно. Гораздо лучше честно написать i*i — это и операций меньше занимает и во многих случаях точнее работает.

    • Не знаю в чём проблема. Когда я пишу i*i ответ не верный, а при pow все отлично выходит. Возможно это не тот случай(при i*i он выводит 2 , а при pow(i,2)- 1.63498).

    • Потому что i — int, 1 — тоже int. Соответственно деление целочисленное. Приведите знаменатель к double и будет Вам счастье.

    • при i — double
      error: invalid types ‘double [101][double]’ for array subscript
      arr[i]=1/(i*i);

  2. Мне кажется Вы перепутали категорию задачи — правильная категория «Циклы»! Поэтому и массив здесь абсолютно не нужен.
    Замечание по стилю: вместо i < 101 куда логичнее написать i <= 100, ведь верхний предел суммирования равен 100 (зачем в уме прибавлять к нему единицу?). А вот нижним пределом в математической формуле указан ноль, что невозможно (деление на ноль) — проверьте условие.

    Кроме того в программе нет таблицы тестов. Правда, т.к. входных данных в программе нет, таблица тестов будет содержать только одну строку с ожидаемым результатом и комментарий о том, пройден ли тест.

    • i задан с помощью int и разницы в выборе i<=100 или i<101 нет. Почему же я беру с 0? в коде написано i=1; i<101;i++ , т.е. i от 1 до 100;

    • Тесты добавил. Объяснения исправил.

  3. Олег предлагает Вам не сделать переменную i типа double, а привести ее тип к double в формуле слагаемого, например, так (double) i. Можно и числитель в этой формуле сделать вещественным — это еще проще.

    «разницы в выборе i<=100 или i<101 нет. " - согласен. Так почему тогда Вы используете менее очевидный i<101, а не i<=100? Экономите один символ? "в коде написано i=1; i<101;i++ , т.е. i от 1 до 100;" - да и это правильно! А я что пишу: "нижним пределом в математической формуле указан ноль» — в условии задачи, в строчке «Задача. Вычислить \sum_{i=0}^{100}{1/i^2};» и еще в таблице теперь.

    Таблицу сделали — хорошо.

    И главное: повторю еще раз свои слова: «Мне кажется Вы перепутали категорию задачи – правильная категория “Циклы”! Поэтому и массив здесь абсолютно не нужен.» — категорию, то Вы исправили, а массив в программе остался. Неужели он так Вам нужен?

Добавить комментарий