Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: Microsoft .NET

  Все выпуски  

RFpro.ru: Microsoft .NET


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный ХОСТИНГ на базе Linux x64 и Windows x64

РАССЫЛКИ ПОРТАЛА RFPRO.RU

Лучшие эксперты данной рассылки

Гаряка Асмик
Статус: Профессор
Рейтинг: 6520
∙ повысить рейтинг »
Micren
Статус: Профессионал
Рейтинг: 1717
∙ повысить рейтинг »
Andrew Kovalchuk
Статус: Профессионал
Рейтинг: 785
∙ повысить рейтинг »

/ КОМПЬЮТЕРЫ И СОФТ / Программирование / Microsoft .NET : C#

Номер выпуска:199
Дата выхода:29.12.2010, 22:30
Администратор рассылки:Alexey G. Gladenyuk (Управляющий)
Подписчиков / экспертов:164 / 56
Вопросов / ответов:1 / 1

Вопрос № 181564: Здравствуйте, уважаемые эксперты! Прошу Вас ответить на следующий вопрос: Даны k значений натуральных чисел n. Найти все различные циф-ры, входящие в запись чисел n и их количество. Найти число с наибольшим и наименьшим количеством различных цифр....



Вопрос № 181564:

Здравствуйте, уважаемые эксперты! Прошу Вас ответить на следующий вопрос:
Даны k значений натуральных чисел n. Найти все различные циф-ры, входящие в запись чисел n и их количество. Найти число с наибольшим и наименьшим количеством различных цифр. Построить гистограмму зависимости количества различных цифр в записи числа от его порядкового номера
P.S через console application,с пояснениями что где и пожалуйста блок схему в пайнте

Отправлен: 22.12.2010, 22:07
Вопрос задал: Benqq (Посетитель)
Всего ответов: 1
Страница вопроса »


Отвечает PsySex (Специалист) :
Здравствуйте, Benqq!
блок схемы рисовать не умею, может кто-нибудь из других экспертов нарисует.
Код:
using System;
using System.Linq;

namespace ConsoleApplication1
{
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 (uniqueC hars.Count() <= minDistinct)
{
//тоже самое для минимального
minDistin ct = 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();
}
}
}

-----
Bom Shankar!

Ответ отправил: PsySex (Специалист)
Ответ отправлен: 23.12.2010, 16:26
Номер ответа: 265031
Россия, Орёл

Вам помог ответ? Пожалуйста, поблагодарите эксперта за это!
Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 265031 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:


  • Оценить выпуск »
    Нам очень важно Ваше мнение об этом выпуске рассылки!

    Задать вопрос экспертам этой рассылки »

    Скажите "спасибо" эксперту, который помог Вам!

    Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
    на короткий номер 1151 (Россия)

    Номер ответа и конкретный текст СМС указан внизу каждого ответа.

    Полный список номеров »

    * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов)
    ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
    *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.


    © 2001-2010, Портал RFPRO.RU, Россия
    Авторское право: ООО "Мастер-Эксперт Про"
    Автор: Калашников О.А. | Программирование: Гладенюк А.Г.
    Хостинг: Компания "Московский хостер"
    Версия системы: 2010.6.25 от 13.12.2010

    В избранное