Заполнить массив ненулевыми элементами так, чтобы итоговая сумма была 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();
}
}
}