infoarena

infoarena - concursuri, probleme, evaluator, articole => Informatica => Subiect creat de: c a e n din Iunie 01, 2011, 18:53:28



Titlul: Cifrele unui numar
Scris de: c a e n din Iunie 01, 2011, 18:53:28
As vrea sa stiu cum este cel mai eficient sa determin daca doua numere au aceleasi cifre de acelasi numar de ori. Eu fac asta cu o matrice, unde v[k][j] este numarul de cifre J din numarul K, iar apoi compar J-urile pentru K1 si K2. Dar vad ca se prefera aranjarea in ordine descrescatoare a cifrelor si compararea numerelor obtinute. Pare mai simplu, dar cu prima idee nu trebuie decat sa trec o data prin numar si sa modific matricea. Cu a doua idee trebuie sa trec de 10 ori prin numar. Imi scapa mie ceva, sau de ce este preferata a doua metoda? Multumesc!


Titlul: Răspuns: Cifrele unui numar
Scris de: FMI Ciprian Olariu din Iunie 01, 2011, 19:30:54
Adica tu vrei sa vezi daca cele 2 cuvinte sunt anagrame sau permutari ale aceluiasi sir de cifre?  :-s
Adica gen 2817 cu 7821 ?
Pai o alta metoda convenabila cred ar fi sa le transformi in siruri de caractere si sa le sortezi cu sort,iar apoi sa verifici cu strcmp daca coincid.  :-k


Titlul: Răspuns: Cifrele unui numar
Scris de: Simoiu Robert din Iunie 01, 2011, 19:34:56
Daca ai asa, cel mai usor ar fi sa faci ceva gen :
  • cnt1[c] = de cate ori apare cifra c in sirul 1, si cnt2[c] same, si apoi sa vezi daca acest vector coincide, adica
  • for c = 0,9 if (cnt1[c] = cnt2[c]) increasesolution.