BG Development


  Reply to this topicStart new topicStart Poll

> Намиране на броя числа с дублиращи се цифри..помощ
askopl
Публикувано на: 19-11-2019, 21:20
Quote Post



Име: Аско
Група: Потребител
Ранг: Новопостъпил

Мнения: 2
Регистриран на: 19.11.19



Трябва ми някакво решение на следната задача, на C++ или Java ...Ще съм много благодарен на всеки опитал се да помогне!

Напишете програма която прочита от стандартния вход броя N на естествени числа, които ще анализира. След това програмата трябва да прочете тези N числа и да отпечата на един ред на стандартния изход броя на тези от тях, които могат, чрез разместване на цифрите в записа им да се преобразуват в някое от другите прочетени числа

Пример:

Вход :6 25 21 10242 42210 52 24021

Изход 5

Ограничения 2 < N ≤ 106 ;

прочетените числа са по-малки от 264. Гарантирано е, че прочетените числа са различни.

Обяснение на примера Чрез разместване на цифрите на 25 може да се получи 52. Вярно е и обратното твърдение – чрез разместване на цифрите на 52 може да се получи 25. До тук две измежду прочетените числа отговарят на исканото условие. Подобни съображения са валидни и за трите петцифрени числа от прочетените. Или общо пет от прочетените числа отговарят на условието

PMEmail Poster
Top
my_shadow
Публикувано на: 20-11-2019, 00:33
Quote Post



Име:
Група: Потребител
Ранг: Редовен член

Мнения: 597
Регистриран на: 07.09.07



Защо просто не броиш цифрите от 0 до 9 за всяко число колко пъти се срещат. Можеш да ги запазиш в масиви int[9] и да сравняваш тях. Ако се забиеш на пермутации и сравнения става сложно и времево неефективно.

CODE
Например за 42210 и 24021 ще получиш един резултат:
q[0] = 1
q[1] = 1
q[2] = 2
q[3] = 0
q[4] = 1
q[5] = 0
q[6] = 0
q[7] = 0
q[8] = 0
q[9] = 0


За всяка цифра на входа ще имаш масив с фиксирана дължина и можеш да ги сравнянаш лесно с memcmp()

Това мнение е било редактирано от my_shadow на 20-11-2019, 00:49
PMEmail Poster
Top
1 потребители преглеждат тази тема в момента (1 гости, 0 анонимни потребители)
Потребители, преглеждащи темата в момента:

Topic Options Reply to this topicStart new topicStart Poll

 


Copyright © 2003-2019 | BG Development | All Rights Reserved
RSS 2.0