|
@@ -1,47 +1,84 @@
|
|
|
using System;
|
|
|
-using System.Collections.Generic;
|
|
|
-using System.Linq;
|
|
|
-using System.Text;
|
|
|
-using System.Threading.Tasks;
|
|
|
|
|
|
-namespace ConsoleApp21
|
|
|
+class Program
|
|
|
{
|
|
|
- internal class Program
|
|
|
+
|
|
|
+ static void Main()
|
|
|
+ {
|
|
|
+ // Получаем входные данные от пользователя
|
|
|
+ int n = GetInput();
|
|
|
+
|
|
|
+ // Вычисляем сумму 1+2+...+n и значение n(n+1)/2
|
|
|
+ long sumResult = CalculateSum(n);
|
|
|
+ long formulaResult = CalculateFormula(n);
|
|
|
+
|
|
|
+ // Выводим результаты
|
|
|
+ DisplayResults(n, sumResult, formulaResult);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ static int GetInput()
|
|
|
{
|
|
|
- static void Main(string[] args)
|
|
|
+ int n;
|
|
|
+ Console.WriteLine("Программа проверяет равенство: 1+2+...+n = n(n+1)/2");
|
|
|
+
|
|
|
+ // Запрашиваем ввод, пока не будет введено корректное натуральное число
|
|
|
+ while (true)
|
|
|
{
|
|
|
- Console.WriteLine("Проверка равенства 1+2+...+n = n(n+1)/2");
|
|
|
Console.Write("Введите натуральное число n: ");
|
|
|
+ string input = Console.ReadLine();
|
|
|
|
|
|
- // Чтение ввода пользователя и преобразование в целое число
|
|
|
- int n;
|
|
|
- while (!int.TryParse(Console.ReadLine(), out n) || n <= 0)
|
|
|
- {
|
|
|
- Console.Write("Ошибка! Введите натуральное число (n > 0): ");
|
|
|
- }
|
|
|
- // Вычисление левой части равенства (сумма чисел от 1 до n)
|
|
|
- int leftSum = 0;
|
|
|
- for (int i = 1; i <= n; i++)
|
|
|
+ // Проверяем, является ли ввод целым числом и больше нуля
|
|
|
+ if (int.TryParse(input, out n) && n > 0)
|
|
|
{
|
|
|
- leftSum += i;
|
|
|
+ break;
|
|
|
}
|
|
|
+ Console.WriteLine("Ошибка! Введите целое число больше нуля.");
|
|
|
+ }
|
|
|
|
|
|
- // Вычисление правой части равенства (формула n(n+1)/2)
|
|
|
- int rightSum = n * (n + 1) / 2;
|
|
|
- // Вывод результатов
|
|
|
- Console.WriteLine($"Сумма чисел от 1 до {n} (лев. часть): {leftSum}");
|
|
|
- Console.WriteLine($"Результат формулы n(n+1)/2 (прав. часть): {rightSum}");
|
|
|
+ return n;
|
|
|
+ }
|
|
|
|
|
|
- // Проверка равенства
|
|
|
- if (leftSum == rightSum)
|
|
|
- {
|
|
|
- Console.WriteLine($"Равенство выполняется: {leftSum} = {rightSum}");
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- Console.WriteLine($"Ошибка! Равенство не выполняется: {leftSum} ≠ {rightSum}");
|
|
|
- }
|
|
|
+
|
|
|
+ static long CalculateSum(int n)
|
|
|
+ {
|
|
|
+ long sum = 0;
|
|
|
+
|
|
|
+ // Суммируем все числа от 1 до n
|
|
|
+ for (int i = 1; i <= n; i++)
|
|
|
+ {
|
|
|
+ sum += i;
|
|
|
}
|
|
|
+
|
|
|
+ return sum;
|
|
|
}
|
|
|
-}
|
|
|
-
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ static long CalculateFormula(int n)
|
|
|
+ {
|
|
|
+ // Вычисляем по формуле (n*(n+1))/2
|
|
|
+ // Используем long для избежания переполнения при больших n
|
|
|
+ return (long)n * (n + 1) / 2;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ static void DisplayResults(int n, long sumResult, long formulaResult)
|
|
|
+ {
|
|
|
+ Console.WriteLine($"\nРезультаты для n = {n}:");
|
|
|
+ Console.WriteLine($"Сумма 1+2+...+n = {sumResult}");
|
|
|
+ Console.WriteLine($"Значение по формуле n(n+1)/2 = {formulaResult}");
|
|
|
+
|
|
|
+ // Сравниваем результаты и выводим заключение
|
|
|
+ if (sumResult == formulaResult)
|
|
|
+ {
|
|
|
+ Console.WriteLine($"\nРавенство выполняется: {sumResult} = {formulaResult}");
|
|
|
+ Console.WriteLine("Таким образом, формула 1+2+...+n = n(n+1)/2 верна для данного n.");
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ Console.WriteLine($"\nОшибка! {sumResult} ≠ {formulaResult}");
|
|
|
+ Console.WriteLine("Формула не работает для данного n.");
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|