Я только начал делать первые шаги в обучении кодированию и общем (начиная с C#), и сейчас я изучаю книгу. Книга оставляет вопросы в конце каждой главы. В настоящее время я не уверен, как это сделать. Вопрос заключается в следующем:Подсчет бесконечной серии 1/n
Вопрос: Напишите программу, которая рассчитывает сумму (с точностью 0,001) следующей последовательности: 1 + 1/2 - 1/3 + 1/4 - 1/5 + ... 1/п
книга дала следующие рекомендации для решения этой проблемы:
Направляющие линии: накапливают сумму последовательности в переменной внутри некоторое время петли (смотрите главу «петли»). На каждом шаге сравнивайте старую сумму с новой суммой. Если разница между двумя суммами Math.Abs (current_sum - old_sum) меньше требуемой точности (0,001), расчет должен завершиться, потому что разница постоянно уменьшается и точность постоянно увеличивается на каждом шаге цикла. Ожидаемый результат: 1.307
У меня есть идея о том, как реализовать это, но я не знаю, как и где инициировать и разрывать цикл, когда сумма достигла требуемой точности. В настоящее время я использую ввод пользователя для ввода n. Я хотел бы знать, как автоматизировать этот процесс.
Вот мой код. Я знаю, что его полицейский использовал формат {N: 2}, но я не уверен, как действовать. Очень понравилась бы помощь! Благодаря!
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace Demo
{
class Program
{
static void Main()
{
Console.Write("Please enter n: ");
double counter = double.Parse(Console.ReadLine());
double sum = 1 + AddSum(counter); // calculate infinite sum
Console.WriteLine("Sum = {0:N3}", sum);
}
static double AddSum(double n)
{
double a = 0;
for (double i = 1; i < n; i++)
{
if(i % 2 == 0)
{
a -= 1/(i +1); // calculates negative fractions
}
else
{
a += 1/(i +1); // calculates positive fractions
}
}
return a;
}
}
Что является критерием для завершения программы Это не номер, введенный пользователем. Это «Если разница между двумя суммами Math.Abs (current_sum - old_sum) меньше требуемой точности (0,001), расчет должен завершиться». Затем вы возвращаете результат. Поэтому вы не должны просить пользователя ввести n –
Я не знал, как начать решение проблемы, поэтому решил обратиться к пользователю с просьбы. Надеюсь, что я смогу сначала распечатать начальную сумму, а затем решить остальную часть проблемы в отношении требуемой точности. – Nate