Заполнить массив ненулевыми элементами так, чтобы итоговая сумма была 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(); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д