Заполнить массив ненулевыми элементами так, чтобы итоговая сумма была 0 - C#

Узнай цену своей работы

Формулировка задачи:

Вводим размер массива. Заполнить его не нулевыми элементами так, чтобы итоговая сумма была 0. (Вспомнить, что значит решить квадратное уравнение). Ну совсем ничего в голову не приходит, есть какие идеи по этой программе? Хотя бы суть объясните, а дальше я сама( Единственный вариант.. но результата нет, неужели комбинацию не может найти цифр, чтобы в сумме 0 давали?.. да и причем тут квадратное уравнение...
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            System.Console.Write("Введите размер массива  ");
            int a = Convert.ToInt32(Console.ReadLine());
            Random rand = new Random();
            int[] mas = new int[a];
 
            for (int i = 0; i < a; i++)
            {
                mas[i] = rand.Next(-10, 11);
            }
 
            int sum = 0;
 
            do
            {
                sum = 0;
                for (int i = 0; i < a; i++)
                {
                    if (mas[i] != 0)
                    {
                        sum += mas[i];
                    }
                    else
                    {
                        mas[i] = rand.Next(-10, 11);
                        sum += mas[i];
                    }
                }
            } while (sum != 0);
 
            for (int i = 0; i < a; i++)
                Console.Write(mas[i].ToString() + " ");
            System.Console.ReadLine();
        }
    }
}

Решение задачи: «Заполнить массив ненулевыми элементами так, чтобы итоговая сумма была 0»

textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            System.Console.Write("Введите размер массива  ");
            int a = Convert.ToInt32(Console.ReadLine());
            Random rand = new Random();
            int[] mas = new int[a];
            int j = a / 2;
            for (int i = 0; i < a / 2; i++)
            {
 
                mas[i] = j;
                mas[a - 1 - i] = -j;
                j--;
            }
 
            int sum = 0;
 
            for (int i = 0; i < a; i++)
            {
                sum += mas[i];
            }
 
            if (sum == 0)
 
                for (int i = 0; i < a; i++)
                    Console.Write(mas[i].ToString() + " ");
            System.Console.ReadLine();
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4 из 5
Похожие ответы