Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

С# консольное приложение написать код

Егор Чебруков Ученик (80), закрыт 1 год назад
Разработайте консольное приложение которое вычисляет сумму 1 + 1/2 + 1/3 + ... + 1/N. N задается пользователем
Лучший ответ
Ксения Райт Высший разум (107142) 1 год назад
Для больши́х N есть формулаПоэтому при достаточно больши́х N сумму ограниченного гармонического ряда циклом считать бессмысленно. Но можете сами проверить что к чему:
 using System;    
namespace New_Project
{
public static class Program
{
public static void Main()
{
ulong i, N;
double s, S;
while (true)
{
s = 0.0;
Console.Write("N: ");
N = ulong.Parse(Console.ReadLine());
for (i = N; i > 0; --i) s += 1.0 / i;
Console.Write($"S = {s}");
S = Math.Log(N)+0.57721566490153286+0.5/N-
1.0/(12.0*N*N)+1.0/(120.0*N*N*N*N)-
1.0/(252.0*N*N*N*N*N*N);
Console.WriteLine(" (" + S + ")");
}
}
}
}
Для относительно небольших N всё же лучше сделать программу с циклом:
 using System;    
namespace New_Project
{
public static class Program
{
public static void Main()
{
double e = 1.0, i, N, s;
while (true)
{
s = 0.0;
Console.Write("N = ");
N = double.Parse(Console.ReadLine());
for (i = N; i > 0.0; i -= e) s += e / i;
Console.WriteLine($"S = {s}");
}
}
}
}
Остальные ответы
Андрей Высший разум (480885) 1 год назад
 double s = 0.0;
for (long n = Convert.ToInt64(Console.ReadLine()); n >= 1; --n) { s += 1.0 / n; }
Console.WriteLine(s);
Спартак Бендеров (SJBatya) Мыслитель (5456) 1 год назад
 int N = Convert.ToInt32(Console.ReadLine()); 
float sum = 0;
for (float i = 1; i < N + 1; i++)
sum += 1/i;
Console.WriteLine(sum);
Похожие вопросы