Ошибка постоянно выходит. Подскажите пожалуйста в чем проблема
Задайте значения M и N. Напишите программу, которая найдёт сумму натуральных элементов в промежутке от M до N. 
 M = 1; N = 15 -> 120 
 M = 4; N = 8. -> 30 
 */ 
  
Console.Write("Введите число M: 1 "); 
int m = Convert.ToInt32(Console.ReadLine()); 
 
Console.Write("Введите число N: 15 "); 
int n = Convert.ToInt32(Console.ReadLine()); 
 
SumFromMToN(m, n); 
 
// вызов функции "сумма чисел от M до N" 
void SumFromMToN(int m, int n) 
{ 
    Console.Write(SumMN(m - 1, n)); 
} 
 
// функция сумма чисел от M до N 
int SumMN(int m, int n) 
{ 
    int res = m; 
    if (m == n) 
        return 0; 
    else 
    { 
        m++; 
        res = m + SumMN(m, n); 
        return res; 
    } 
}
	
	
	C#
	
		
		
								
				
																				
							
								
				
								
				
			
	
		
			Задайте значения M и N. Напишите программу, которая найдёт сумму натуральных элементов в промежутке от M до N.,
Я бы лучше сделала и с циклом и по формуле Σ(i=M;N)i=½•(N•(N+1)-M•(M-1)), где M≤N и M, N - натуральные числа:
				
									 using System; 
class New_Project  
{
  public void Main()  
  {
    uint i, M, N;
    ulong s, S, t;
    while (true) 
    {
      s = 0;
      Console.Write("M N: ");
      var line = Console.ReadLine().Split(" ");
      M = uint.Parse(line[0]);
      N = uint.Parse(line[1]); 
      t = N + 1;
      t *= N;
      S = t;
      t = M - 1;
      t *= M;
      S = (S - t) / 2;
      for (i = M; i
								
									Александр Левченко								
								Это код так сжался при копировании, или это стиль такой?							
											Математической формулой считай: S = (M+N)*(N-M+1)/2
Рекурсией в данной ситуации считать неоправданно.
				
							Рекурсией в данной ситуации считать неоправданно.
Приведенный код содержит несколько ошибок. Вот исправленный вариант:
```csharp
using System;
class Program
{
static void Main()
{
Console.Write("Введите число M: ");
int m = Convert.ToInt32(Console.ReadLine());
Console.Write("Введите число N: ");
int n = Convert.ToInt32(Console.ReadLine());
int sum = SumFromMToN(m, n);
Console.WriteLine("Сумма натуральных элементов от M до N: " + sum);
}
static int SumFromMToN(int m, int n)
{
if (m > n)
{
throw new ArgumentException("Значение M должно быть меньше или равно N");
}
if (m == n)
{
return m;
}
else
{
return m + SumFromMToN(m + 1, n);
}
}
}
```
Внесены следующие изменения:
1. Удалены лишние значения в методах `Console.Write`, чтобы получать значения M и N от пользователя.
2. Добавлено сообщение о сумме натуральных элементов в методе `Main`.
3. Добавлена проверка на то, что M должно быть меньше или равно N. Если это условие не выполняется, выбрасывается исключение `ArgumentException`.
4. В методе `SumFromMToN` увеличение значения `m` перед рекурсивным вызовом функции заменено на `m + 1`, чтобы избежать ошибки бесконечной рекурсии.
5. Добавлено базовое условие, чтобы при достижении M равного N функция вернула значение M.
Теперь программа должна работать правильно и вычислять сумму натуральных чисел в промежутке от M до N.
				
							```csharp
using System;
class Program
{
static void Main()
{
Console.Write("Введите число M: ");
int m = Convert.ToInt32(Console.ReadLine());
Console.Write("Введите число N: ");
int n = Convert.ToInt32(Console.ReadLine());
int sum = SumFromMToN(m, n);
Console.WriteLine("Сумма натуральных элементов от M до N: " + sum);
}
static int SumFromMToN(int m, int n)
{
if (m > n)
{
throw new ArgumentException("Значение M должно быть меньше или равно N");
}
if (m == n)
{
return m;
}
else
{
return m + SumFromMToN(m + 1, n);
}
}
}
```
Внесены следующие изменения:
1. Удалены лишние значения в методах `Console.Write`, чтобы получать значения M и N от пользователя.
2. Добавлено сообщение о сумме натуральных элементов в методе `Main`.
3. Добавлена проверка на то, что M должно быть меньше или равно N. Если это условие не выполняется, выбрасывается исключение `ArgumentException`.
4. В методе `SumFromMToN` увеличение значения `m` перед рекурсивным вызовом функции заменено на `m + 1`, чтобы избежать ошибки бесконечной рекурсии.
5. Добавлено базовое условие, чтобы при достижении M равного N функция вернула значение M.
Теперь программа должна работать правильно и вычислять сумму натуральных чисел в промежутке от M до N.
Похожие вопросы
- Учитывая целое число n (n>2), напишите метод, который возвращает простые числа из диапазона [2, n].
- C#. Написать программу для нахождения периметра и площади треугольника. СТороны вводить с клавиатуры
- Помогите написать программу C#
- Написать программу для выполнения расчета требуемого количества операторов call-центра
- Счетчик нажатия кнопки Enter. Написал программу, но не работает. Winforms C#
- Есть кто разбирается в C# или в ПаскальABC? нужно найти сумму ряда
- Помогите написать программу с массивом на C#
- Написать программу на C# вычисления стоимости покупки с учетом скидки.
- Помогите написать программу на C# По задачнику PascalABC Case20
- Написать программу на С#
 
			