using System;
using System.Linq;
namespace Program1
{
class Program
{
//количество значений
const int k = 5;
static void Main(string[] args)
{
//решение построим на основе невыравненного массива
char[][] n = new char[k][];
//для ввода используем 64-битные числа для возможности ввести число побооольше
Int64 intvalue;
bool IsInt;
//переменные для определения максимальных-минимальынх количеств различных чисел
int maxDistinct = 1;
int minDistinct = 1;
//переменные для хранения максимального-минимального значения
Int64 maxDistinctValue = 0;
Int64 minDistinctValue = 0;
//массив для хранения количеств не повторяющихся чисел
int[] Distincts = new int[k];
//цикл для ввода чисел
Console.WriteLine("===============ввод данных==================\r\n");
for (int i = 0; i < k; ++i)
{
Console.Write("Введите число n[{0}]:", i);
IsInt = false;
while (!IsInt)
{
IsInt = Int64.TryParse(Console.ReadLine(), out intvalue);
if (!IsInt)
Console.WriteLine("Введено не верное значение!");
else
{
//сразу определим размер массива для цифр, из которых состоит число
//и разобъем число в символьный массив
n[i] = new char[intvalue.ToString().Length];
n[i] = intvalue.ToString().ToCharArray();
}
}
}
Console.WriteLine("\r\n==========поиск различных чисел и их количество============\r\n");
//цикл по всем значениям
for (int i = 0; i < k; ++i)
{
//массив различных цифр в значении
var uniqueChars = n[i].Distinct();
//запоминаем количество различных цифр, будет использоваться для построения гистограммы
Distincts[i] = uniqueChars.Count();
// число собираем из массива символов
Console.WriteLine("В числе {0} найдены различные цифры:", new string(n[i]));
//цикл по массиву различных элементов
foreach (var uc in uniqueChars)
{
//подсчитываем одинаковое количество цифр в числе
int amount = (from a in n[i]
where a == uc
select a).Count<char>();
Console.WriteLine("{0} в колличестве {1} шт.", uc, amount);
}
//запоминаем максимальное количество
if (uniqueChars.Count() >= maxDistinct)
{
//запоминаем максимальное количество различных цифр
maxDistinct = uniqueChars.Count();
//запоминаем число которому принадлежит максимальное количество различных цифр
maxDistinctValue = Int64.Parse(new string(n[i]));
}
if (uniqueChars.Count() <= minDistinct)
{
//тоже самое для минимального
minDistinct = uniqueChars.Count();
minDistinctValue = Int64.Parse(new string(n[i]));
}
}
//выводим на экран значения с максимальным и минимальным количеством различных цифр
Console.WriteLine("\r\n==========max/min количества различных чисел============\r\n");
Console.WriteLine("Число с максимальным количеством различных цифр: {0}", maxDistinctValue);
Console.WriteLine("Число с минимальным количеством различных цифр: {0}", minDistinctValue);
//гистограмма
//в консоле гистограмму рисуем символами, по другому нельзя
Console.WriteLine("\r\n===============гистограмма==================");
Console.WriteLine("порядковый номер:количество различных цифр\r\n");
for (int i = 0; i < k; ++i)
{
Console.WriteLine("{0}:{1}", i, new string('-', Distincts[i]));
}
//ждем нажатия клавиши для завершения программы
Console.ReadKey();
}
}
}
//Флаг, что число не введено
IsInt = false;
//проверяем, пока число не введено
while (!IsInt)
{
//получили число или нет
IsInt = Int64.TryParse(Console.ReadLine(), out intvalue);
//Если не получили
if (!IsInt)
Console.WriteLine("Введено не верное значение!");
//Если получили число
else
{
//сразу определим размер массива для цифр, из которых состоит число
//и разобъем число в символьный массив
n[i] = new char[intvalue.ToString().Length];
n[i] = intvalue.ToString().ToCharArray();
}
}
using System;
using System.Linq;
namespace Program1
{
class Program
{
//количество значений
const int k = 5;
static void Main(string[] args)
{
//решение построим на основе невыравненного массива
char[][] n = new char[k][];
//для ввода используем 64-битные числа для возможности ввести число побооольше
Int64 intvalue;
bool IsInt;
//переменные для определения максимальных-минимальных количеств различных чисел
int maxDistinct = 1;
int minDistinct = 1;
//переменные для хранения максимального-минимального значения
Int64 maxDistinctValue = 0;
Int64 minDistinctValue = 0;
//массив для хранения количеств не повторяющихся чисел
//цикл для ввода чисел
Console.WriteLine("===============ввод данных==================\r\n");
for (int i = 0; i < k; ++i)
{
Console.Write("Введите число n[{0}]:", i);
IsInt = false;
while (!IsInt)
{
IsInt = Int64.TryParse(Console.ReadLine(), out intvalue);
if (!IsInt)
Console.WriteLine("Введено неверное значение!");
else
{
//сразу определим размер массива для цифр, из которых состоит число
//и разобъем число в символьный массив
n[i] = new char[intvalue.ToString().Length];
n[i] = intvalue.ToString().ToCharArray();
}
}
}
Console.WriteLine("\r\n==========поиск различных чисел и их количество============\r\n");
//цикл по всем значениям
for (int i = 0; i < k; ++i)
{
//массив различных цифр в значении
var uniqueChars = n[i].Distinct();
// число собираем из массива символов
Console.WriteLine("В числе {0} найдены различные цифры:", new string(n[i]));
//цикл по массиву различных элементов
foreach (var uc in uniqueChars)
{
//подсчитываем одинаковое количество цифр в числе
int amount = (from a in n[i]
where a == uc
select a).Count<char>();
Console.WriteLine("{0} в количестве {1} шт.", uc, amount);
}
//запоминаем максимальное количество
if (uniqueChars.Count() >= maxDistinct)
{
//запоминаем максимальное количество различных цифр
maxDistinct = uniqueChars.Count();
//запоминаем число которому принадлежит максимальное количество различных цифр
maxDistinctValue = Int64.Parse(new string(n[i]));
}
if (uniqueChars.Count() <= minDistinct)
{
//тоже самое для минимального
minDistinct = uniqueChars.Count();
minDistinctValue = Int64.Parse(new string(n[i]));
}
}
//выводим на экран значения с максимальным и минимальным количеством различных цифр
Console.WriteLine("\r\n==========max/min количества различных чисел============\r\n");
Console.WriteLine("Число с максимальным количеством различных цифр: {0}", maxDistinctValue);
//ждем нажатия клавиши для завершения программы
Console.ReadKey();
}
}
}
Если Вы уже зарегистрированы на Портале - войдите в систему, если Вы еще не регистрировались - пройдите простую процедуру регистрации.