Максимальная цифра м.б. 9, значит сумма цифр не может быть больше 18
1) Сначала уберем из списка все возрастающие - 1619 316 916
останется 1616 169 163 1916 116
2) Из этого списка удалим также 1916, т.к 19 не может быть (сумма цифр макс 18)
Останется 1616 169 163 116
3) Рассмотрим, все ли числа могли получится, как результат сложения
1616 могло получится, если число, например, 888. Значит его оставляем
169 - например, 972 или 881. Значит, тоже подходит
163 - 16 может получиться как сумма 8+8 7+9, но тогда мы не получим 3. Т.е. это число не подходит - удаляем
116 - это, например, 560, 651, т.е подходит
Значит осталось 1616, 169, 116
ответ: 3
using System;
using System.Collections.Generic;
using System.Linq;
namespace Queue
{
public class Queue<T>
{
private List<T> _items = new List<T>();
public int Count => _items.Count;
public void Enqueue(T item)
{
if(item == null)
{
throw new ArgumentNullException(nameof(item));
}
_items.Add(item);
}
public T Dequeue()
{
var item = GetItem();
_items.Remove(item);
return item;
}
public T Peek()
{
var item = GetItem();
return item;
}
private T GetItem()
{
var item = _items.FirstOrDefault();
if (item == null)
{
throw new NullReferenceException("Очередь пуста. Нет элементов для получения.");
}
return item;
}
}
}
namespace Queue
{
class Program
{
static void Main(string[] args)
{
// Создаем новую очередь.
var queue = new Queue<int>();
// Добавляем новые элементы в очередь.
queue.Enqueue(1);
queue.Enqueue(7);
queue.Enqueue(42);
queue.Enqueue(69);
queue.Enqueue(-17);
Console.WriteLine($"Очередь содержит {queue.Count} элементов.");
// Получаем элементы с удалением.
var item1 = queue.Dequeue();
Console.WriteLine($"Первый элемент из очереди {item1}.");
var item2 = queue.Dequeue();
Console.WriteLine($"Второй элемент из очереди {item2}.");
// Добавляем новый элемент в очередь.
queue.Enqueue(88);
// Просматриваем элемент без удаления.
var item3 = queue.Peek();
Console.WriteLine($"Обзор элемента без удаления {item3}.");
Console.ReadLine();
}
}
}