Don't like ads? PRO users don't see any ads ;-)
Guest

Составить наибольшее число из входных символов

By: darklagger on Apr 30th, 2012  |  syntax: C#  |  size: 2.16 KB  |  hits: 23  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. /*
  2. На вход программе подается последовательность символов, среди которых встречаются и цифры. Ввод символов заканчивается точкой (в программе на языке Бейсик символы можно вводить по одному в строке, пока не будет введена точка). Требуется написать как можно более эффективную программу (укажите используемую версию языка программирования, например, Borland Pascal 7.0), которая составит из тех цифр, которые
  3. встречаются во входных данных, максимальное число. При составлении итогового числа каждая цифра может быть использована только один раз. Если во входных данных цифры не встречаются, то следует вывести "-1". Например, пусть на вход подаются следующие символы:
  4. 14ф73п439
  5. В данном случае программа должна вывести
  6. 97431
  7. */
  8. using System;
  9. using System.Collections.Generic;
  10. using System.Linq;
  11.  
  12. namespace ConsoleApplication1
  13. {
  14.     class Program
  15.     {
  16.         static void Main()
  17.         {
  18.             List<char> list = new List<char>();
  19.             Console.WriteLine("Начинайте вводить последовательность");
  20.             for (; ; )
  21.             {
  22.                 char c = (char)Console.Read();
  23.                 if (c == '.') break;
  24.                 if (char.IsDigit(c)) list.Add(c);
  25.             }
  26.             if(list.Count()==0)
  27.             {
  28.                 Console.WriteLine("-1");
  29.                 Console.ReadKey();
  30.                 return;
  31.             }
  32.             var answer = list.Distinct().OrderByDescending(l => l);
  33.             foreach (var a in answer)
  34.             {
  35.                 Console.Write(a);
  36.             }
  37.             Console.ReadKey();
  38.         }
  39.     }
  40. }