Задача: Вычислить [latex]\sum_{i=1}^{10}{\frac{1}{i!}}[/latex].
Ответ |
1.718282 |
C++:
1 2 3 4 5 6 7 8 9 10 11 12 |
#include <stdio.h> int main(void) { double a=1, b=0; for (int i=1; i<=10; i++) { a=a/i; b=b+a; } printf("Сумма элементов равна %lf\n", b); return 0; } |
Java:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
import java.util.*; import java.lang.*; import java.io.*; class Ideone { public static void main (String[] args) { double a=1, b=0; for (int i=1; i<=10; i++){ a=a/i; b=b+a; } System.out.println("Сумма элементов равна "+b); } } |
Для переменных [latex]a, b[/latex] я использовала тип double, так как они они используются для вычислений и являются вещественными числами. Для переменной [latex]i[/latex] — тип int, так как [latex]i[/latex] — это целые числа от 1 до 10.
Чтобы решить задачу, воспользуемся циклом for, который работает при [latex]1\leq i\leq 10[/latex] и каждый раз прибавляет к [latex]i[/latex] единицу. Переменную [latex]i[/latex] я объявила в цикле, так как вне цикла она не нужна.
Сначала найдём [latex]a[/latex] — элемент суммы, который зависит от выбранного [latex]i[/latex]. После сложим [latex]a[/latex] и переменную [latex]b[/latex], которая обозначает сумму предыдущих элементов, a результат запишем снова в переменную [latex]b[/latex].
Когда цикл дойдёт до 11, его условие перестанет выполняться и напечатается последнее значение, присвоенное переменной [latex]d[/latex].
Эта задача на Ideone:
C++
Java
Почти хорошо. Только вот…
— переменная d используется до присвоения начального значения. Это ведь для накопления суммы? Вот и присвойте в начале ей ноль.
— Вы слишком усложнили 8-ю строку. Это просто деление на i? Не нужно этого стесняться, так и пишите
— Не нужно так много переменных с переприсваиванием. Вполне достаточно счётчика цикла, накопителя частичных сумм и очередного члена ряда. Вы боитесь писать «a /= i»? Это бывает. Тогда пишите a = a / i.
Спасибо за исправления. Оставила две переменные и выразила всё через них.
Зачтено.
Только поставьте ссылку на код в ideOne.com
Вы конечно знаете, что это считается приближенное значение e — 1?
Добавила ссылку на Ideone.
Вы имеете ввиду, что 1.71828180115 округляется до 1.718282?
Тогда знаю.
Java версия засчитана, 10 баллов.
Разве что переменную b лучше назвать sum. А переменную a в таком случае можно назвать summand (слагаемое).