Задача ЕГЭ по инфоматике - C#
Формулировка задачи:
Снова нужна помощь по ЕГЭ.
П.С. Не обязательно всю задачу, можно только ту часть, где написано про число.
На вход подается набор символов, оканчивающийся точкой. Составить из имеющихся в тексте нечетных цифр число максимальной длины, которое читается одинаково как слева направо, так и справа налево. Все цифры использовать не обязательно. Если требуемое число составить нельзя, то вывести слово NO; если же можно, то в первой строке вывести слово YES, а во второй — строку, изображающую найденное число. Если таких чисел несколько, то вывести минимальное из них.
Решение задачи: «Задача ЕГЭ по инфоматике»
textual
Листинг программы
using System; using System.Text; namespace C4 { class Program { static int[] digits = new int[10]; static void Main(string[] args) { char input; while ((input = (char)Console.Read()) != '.') { if (char.IsDigit(input)) { int value = (int)char.GetNumericValue(input); if ((value & 1) == 1) digits[value]++; } } StringBuilder buffer = new StringBuilder(); int max = -1; for (int i = 1; i < digits.Length; i += 2) { while (digits[i] > 1) { buffer.Insert(0, i); buffer.Append(i); digits[i] -= 2; } if (digits[i] > 0 && i > max) max = i; } if (max > 0) buffer.Insert(buffer.Length / 2, max); if (buffer.Length > 0) { Console.WriteLine("YES"); Console.WriteLine(buffer); } else Console.WriteLine("NO"); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д