Задание 3
Дана целочисленная последовательность a1, a2, ..., aN. Пусть m - наименьшее из этих чисел, а M - наибольшее. Получите в порядке возрастания все числа в диапазоне от m до M, которые не входят в заданную последовательность.
Пример входа:
1 5 -2 4 5 -2 4 5 8
Пример вывода
-1 0 2 3 6 7
using System;
u
sing
System.Collections.Generic;
using System.Linq;
using System.Text;
namespace _4._3
{
class Program
{
static void Main(string[] args)
{
Console.Write("Введите размер массива:");
int n = Convert.ToInt32(Console.ReadLine()); // n - размер массива
int[] mass = new int[n];
int i = 0;
for (i = 0; i < n; i++) // поочередно вводим элементы массива
{
Console.Write("Введите {0} элемент массива:", i + 1);
mass[i] = int.Parse(Console.ReadLine());
}
int m = mass[0], M = mass[0]; // задаем перменные наибольшего и наименьшего значения; записываем в них первый эл-т
for (i = 1; i < n; i++) // Ищим m и M;
{
if (m > mass[i]) m = mass[i];
if (M < mass[i]) M = mass[i];
}
for (i = m; i <= M; i++) // Выводим на экран последовательность от m до M
Console.Write(i + " ");
}
}
}
Задание 4
Дан массив, состоящий из N неотрицательных чисел. Найти в нем индекс элемента, для которого сумма элементов, стоящих до него, наименее (по модулю) отличается от суммы элементов, стоящих после него.
Пример входа
6 3 2 1 2
Пример вывода
2 1
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace _4._4
{
class Program
{
static void Main(string[] args)
{
Console.Write("Введите размер массива:");
int n = Convert.ToInt32(Console.ReadLine()); // n - размер массива
int[] mass = new int[n];
int i = 0;
for (i = 0; i < n; i++) // поочередно вводим элементы массива
{
Console.Write("Введите {0} ({1}) элемент массива:", i + 1, i);
mass[i] = (int)Math.Sqrt(Math.Pow(int.Parse(Console.ReadLine()), 2)); // записываем элемент в массив, предварительно избавляясь от минуса
}
int sum1, sum2, raznica = 2 * (int)Math.Pow(10, 9), j, iskomiy_index = 0; // переменные: суммы "до" и "после", разность сумм по модулю, опеделитель элемента массива, искомый индекс
for (i = 0; i < n; i++)
{
sum1 = 0;
sum2 = 0;
for (j = i - 1; j >= 0; j--)//сумма элементов до i-того
{
sum1 += mass[j];
}
for (j = i + 1; j < n; j++) // сумма элементов после i-того
{
sum2 += mass[j];
}
if ((int)Math.Sqrt(Math.Pow(sum1 - sum2, 2)) < raznica)
{
raznica = (int)Math.Sqrt(Math.Pow(sum1 - sum2, 2)); // в raznica записываем наименьшую разницу двух сумм
iskomiy_index = i;
}
}
Console.Write("Индекс оптимального элемента: {0} (индесация от нуля)", iskomiy_index);
}
}
}
