| ← Сентябрь 2013 → | ||||||
|
1
|
||||||
|---|---|---|---|---|---|---|
|
3
|
4
|
5
|
6
|
7
|
8
|
|
|
9
|
10
|
11
|
12
|
13
|
14
|
15
|
|
16
|
17
|
18
|
19
|
20
|
21
|
22
|
|
23
|
24
|
25
|
26
|
27
|
28
|
29
|
|
30
|
||||||
За последние 60 дней ни разу не выходила
Сайт рассылки:
http://rusfaq.ru/issues/5/3/454
Открыта:
23-10-2008
Статистика
0 за неделю


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();
}
}
}