sa se calculeze de cate ori se regaseste cifra c in numerele intregi mai mici sau egale dacat n dat
exemplu: in nr. 79325, c=5 de 41763
Început de lcz, Mar 15 aug 2006 · 10 răspunsuri · 8.621 vizualizări · închis
sa se calculeze de cate ori se regaseste cifra c in numerele intregi mai mici sau egale dacat n dat
exemplu: in nr. 79325, c=5 de 41763
Faci o functie care gaseste de cate ori apare cifra C in numarul X, unde X<=N, si apoi cu un contor, calculezi si aduni rezultatele partiale. Ce e asa greu?
lcz a scris:sa se calculeze de cate ori se regaseste cifra c in numerele intregi mai mici sau egale dacat n dat
exemplu: in nr. 79325, c=5 de 41763
Da, scrii o functie, e simplu; uite eu iti scriu functia in Visual Fox si tu o rescrii apoi in c++
----nmax=79325
----cifra="5"
function cnt_cifra
parameter nmax,cifra
mycnt = 0
for i = 1 to nmax
mysir = str(i)
for j = 1 to len(mysir))
if substr(mysir,j,1) = cifra
mycnt = mycnt+1
endif
endfor
endfor
return mycnt
Succes!
Editat Mar 15 aug 2006 17:06
multumesc mult,
sunt la inceput de drum, fac pregatire particular si nu am ajuns la functii. Am facut doar instructiuni. Ce este simplu pentru voi pentru mine este f. greu!!!! "5" era un exemplu dar poate sa fie orice cifra din nr. respectiv
uite cum s-ar implementa asta in python 
n= input("baga numarul: ")
c = str(input("baga cifra: "))
print len([i for i in range(n) if c in str(i)])
tradus in romana e
n ia valoarea ce se introduce de la promter
c ia valoarea ce se introduce de la promter convertita la un sir de caractere
tipareste lungimea unui sir de numere ce sunt selectate din toate numerele pana la n daca cifra c este in reprezentarea sub forma de sir a numarului.
Editat Joi 7 sep 2006 08:57
multumesc
probabil stiti toti...."jokuletul" ala.....sa desenezi o csautza cu un X in interior....fara sa ridici pixul de pe foaie...whatever.....sa nu trcei de 2 ori prin acesi mukie si fiecare varf sa aiba maxim 2 atingeri....sa se afiseze solutiile.. am reusit ceva cu backtraking.....insa mai am putzin de lucrat..ideea e ca ma kinui de 2 luni sa`i dau de capat....si nimeni nu reuseste sa ma ajute..anybody..help????!!
Dyna`` a scris:probabil stiti toti...."jokuletul" ala.....sa desenezi o csautza cu un X in interior....fara sa ridici pixul de pe foaie...whatever.....sa nu trcei de 2 ori prin acesi mukie si fiecare varf sa aiba maxim 2 atingeri....sa se afiseze solutiile.. am reusit ceva cu backtraking.....insa mai am putzin de lucrat..ideea e ca ma kinui de 2 luni sa`i dau de capat....si nimeni nu reuseste sa ma ajute..anybody..help????!!
Incearca cu arbori! 
Dyna`` a scris:probabil stiti toti...."jokuletul" ala.....sa desenezi o csautza cu un X in interior....fara sa ridici pixul de pe foaie...whatever.....sa nu trcei de 2 ori prin acesi mukie si fiecare varf sa aiba maxim 2 atingeri....sa se afiseze solutiile.. am reusit ceva cu backtraking.....insa mai am putzin de lucrat..ideea e ca ma kinui de 2 luni sa`i dau de capat....si nimeni nu reuseste sa ma ajute..anybody..help????!!
uite cum arata solutia in python
lines = ['AB', 'BC', 'CD','DE', 'EA', 'BE', 'AD', 'BD'] # liniile posibile points = 'ABCDE' #puncte def find_sol(orig, set, sol, tc): if not len(set): #daca nu exista nici un element in set inseamna ca-s toate in solutie (solutie completa) print sol, tc #tipareste solutia si contorul de atingeri for elem in set: #pentru fiecare element din setul ramas if orig in elem and tc[points.index(orig)]<2: #daca segmentul contine punctul in care suntem tc_new = tc[:] # copie contorul de atingeri tc_new[points.index(orig)] +=1 #incrementeaza pentru punctul curent new_set = set[:] #copie vechiul set (pentru a fi modificat) new_set.pop(set.index(elem)) #scoate segmentul if elem[0] != orig: #daca punctele segmentului sunt inversate elem = elem[1]+elem[0] # face rocada dintre puncte pentru a prezenta solutia coerent s = sol[:] #copie solutia prezenta s.append(elem) # adauga segmentul scos din set find_sol(elem[1], new_set, s, tc_new) # cheama recursiv functia cu, noul punct, noul set, noua bucata de solutie si contorul de atingeri for point in points: # pentru fiecare punct de plecare print "Solutii pentru punctul de plecare %s"%point find_sol(point, lines, [], [0,0,0,0,0]) # cauta solutiile
rezultatul e:
Solutii pentru punctul de plecare A
['AB', 'BC', 'CD', 'DE', 'EA', 'AD', 'DB', 'BE'] [2, 2, 1, 2, 1]
['AB', 'BC', 'CD', 'DE', 'EB', 'BD', 'DA', 'AE'] [2, 2, 1, 2, 1]
['AB', 'BC', 'CD', 'DA', 'AE', 'ED', 'DB', 'BE'] [2, 2, 1, 2, 1]
['AB', 'BC', 'CD', 'DA', 'AE', 'EB', 'BD', 'DE'] [2, 2, 1, 2, 1]
['AB', 'BC', 'CD', 'DB', 'BE', 'ED', 'DA', 'AE'] [2, 2, 1, 2, 1]
['AB', 'BC', 'CD', 'DB', 'BE', 'EA', 'AD', 'DE'] [2, 2, 1, 2, 1]
['AB', 'BE', 'ED', 'DC', 'CB', 'BD', 'DA', 'AE'] [2, 2, 1, 2, 1]
['AB', 'BE', 'ED', 'DB', 'BC', 'CD', 'DA', 'AE'] [2, 2, 1, 2, 1]
['AB', 'BE', 'EA', 'AD', 'DC', 'CB', 'BD', 'DE'] [2, 2, 1, 2, 1]
['AB', 'BE', 'EA', 'AD', 'DB', 'BC', 'CD', 'DE'] [2, 2, 1, 2, 1]
['AB', 'BD', 'DC', 'CB', 'BE', 'ED', 'DA', 'AE'] [2, 2, 1, 2, 1]
['AB', 'BD', 'DC', 'CB', 'BE', 'EA', 'AD', 'DE'] [2, 2, 1, 2, 1]
['AB', 'BD', 'DE', 'EA', 'AD', 'DC', 'CB', 'BE'] [2, 2, 1, 2, 1]
['AB', 'BD', 'DE', 'EB', 'BC', 'CD', 'DA', 'AE'] [2, 2, 1, 2, 1]
['AB', 'BD', 'DA', 'AE', 'ED', 'DC', 'CB', 'BE'] [2, 2, 1, 2, 1]
['AB', 'BD', 'DA', 'AE', 'EB', 'BC', 'CD', 'DE'] [2, 2, 1, 2, 1]
['AE', 'ED', 'DC', 'CB', 'BA', 'AD', 'DB', 'BE'] [2, 2, 1, 2, 1]
['AE', 'ED', 'DC', 'CB', 'BD', 'DA', 'AB', 'BE'] [2, 2, 1, 2, 1]
['AE', 'ED', 'DA', 'AB', 'BC', 'CD', 'DB', 'BE'] [2, 2, 1, 2, 1]
['AE', 'ED', 'DA', 'AB', 'BD', 'DC', 'CB', 'BE'] [2, 2, 1, 2, 1]
['AE', 'ED', 'DB', 'BA', 'AD', 'DC', 'CB', 'BE'] [2, 2, 1, 2, 1]
['AE', 'ED', 'DB', 'BC', 'CD', 'DA', 'AB', 'BE'] [2, 2, 1, 2, 1]
['AE', 'EB', 'BA', 'AD', 'DC', 'CB', 'BD', 'DE'] [2, 2, 1, 2, 1]
['AE', 'EB', 'BA', 'AD', 'DB', 'BC', 'CD', 'DE'] [2, 2, 1, 2, 1]
['AE', 'EB', 'BC', 'CD', 'DA', 'AB', 'BD', 'DE'] [2, 2, 1, 2, 1]
['AE', 'EB', 'BC', 'CD', 'DB', 'BA', 'AD', 'DE'] [2, 2, 1, 2, 1]
['AE', 'EB', 'BD', 'DC', 'CB', 'BA', 'AD', 'DE'] [2, 2, 1, 2, 1]
['AE', 'EB', 'BD', 'DA', 'AB', 'BC', 'CD', 'DE'] [2, 2, 1, 2, 1]
['AD', 'DC', 'CB', 'BA', 'AE', 'ED', 'DB', 'BE'] [2, 2, 1, 2, 1]
['AD', 'DC', 'CB', 'BA', 'AE', 'EB', 'BD', 'DE'] [2, 2, 1, 2, 1]
['AD', 'DC', 'CB', 'BE', 'ED', 'DB', 'BA', 'AE'] [2, 2, 1, 2, 1]
['AD', 'DC', 'CB', 'BE', 'EA', 'AB', 'BD', 'DE'] [2, 2, 1, 2, 1]
['AD', 'DC', 'CB', 'BD', 'DE', 'EA', 'AB', 'BE'] [2, 2, 1, 2, 1]
['AD', 'DC', 'CB', 'BD', 'DE', 'EB', 'BA', 'AE'] [2, 2, 1, 2, 1]
['AD', 'DE', 'EA', 'AB', 'BC', 'CD', 'DB', 'BE'] [2, 2, 1, 2, 1]
['AD', 'DE', 'EA', 'AB', 'BD', 'DC', 'CB', 'BE'] [2, 2, 1, 2, 1]
['AD', 'DE', 'EB', 'BC', 'CD', 'DB', 'BA', 'AE'] [2, 2, 1, 2, 1]
['AD', 'DE', 'EB', 'BD', 'DC', 'CB', 'BA', 'AE'] [2, 2, 1, 2, 1]
['AD', 'DB', 'BA', 'AE', 'ED', 'DC', 'CB', 'BE'] [2, 2, 1, 2, 1]
['AD', 'DB', 'BA', 'AE', 'EB', 'BC', 'CD', 'DE'] [2, 2, 1, 2, 1]
['AD', 'DB', 'BC', 'CD', 'DE', 'EA', 'AB', 'BE'] [2, 2, 1, 2, 1]
['AD', 'DB', 'BC', 'CD', 'DE', 'EB', 'BA', 'AE'] [2, 2, 1, 2, 1]
['AD', 'DB', 'BE', 'ED', 'DC', 'CB', 'BA', 'AE'] [2, 2, 1, 2, 1]
['AD', 'DB', 'BE', 'EA', 'AB', 'BC', 'CD', 'DE'] [2, 2, 1, 2, 1]
Solutii pentru punctul de plecare B
Solutii pentru punctul de plecare C
Solutii pentru punctul de plecare D
Solutii pentru punctul de plecare E
['ED', 'DC', 'CB', 'BA', 'AE', 'EB', 'BD', 'DA'] [1, 2, 1, 2, 2]
['ED', 'DC', 'CB', 'BA', 'AD', 'DB', 'BE', 'EA'] [1, 2, 1, 2, 2]
['ED', 'DC', 'CB', 'BE', 'EA', 'AB', 'BD', 'DA'] [1, 2, 1, 2, 2]
['ED', 'DC', 'CB', 'BE', 'EA', 'AD', 'DB', 'BA'] [1, 2, 1, 2, 2]
['ED', 'DC', 'CB', 'BD', 'DA', 'AB', 'BE', 'EA'] [1, 2, 1, 2, 2]
['ED', 'DC', 'CB', 'BD', 'DA', 'AE', 'EB', 'BA'] [1, 2, 1, 2, 2]
['ED', 'DA', 'AB', 'BC', 'CD', 'DB', 'BE', 'EA'] [1, 2, 1, 2, 2]
['ED', 'DA', 'AB', 'BD', 'DC', 'CB', 'BE', 'EA'] [1, 2, 1, 2, 2]
['ED', 'DA', 'AE', 'EB', 'BC', 'CD', 'DB', 'BA'] [1, 2, 1, 2, 2]
['ED', 'DA', 'AE', 'EB', 'BD', 'DC', 'CB', 'BA'] [1, 2, 1, 2, 2]
['ED', 'DB', 'BA', 'AE', 'EB', 'BC', 'CD', 'DA'] [1, 2, 1, 2, 2]
['ED', 'DB', 'BA', 'AD', 'DC', 'CB', 'BE', 'EA'] [1, 2, 1, 2, 2]
['ED', 'DB', 'BC', 'CD', 'DA', 'AB', 'BE', 'EA'] [1, 2, 1, 2, 2]
['ED', 'DB', 'BC', 'CD', 'DA', 'AE', 'EB', 'BA'] [1, 2, 1, 2, 2]
['ED', 'DB', 'BE', 'EA', 'AB', 'BC', 'CD', 'DA'] [1, 2, 1, 2, 2]
['ED', 'DB', 'BE', 'EA', 'AD', 'DC', 'CB', 'BA'] [1, 2, 1, 2, 2]
['EA', 'AB', 'BC', 'CD', 'DE', 'EB', 'BD', 'DA'] [1, 2, 1, 2, 2]
['EA', 'AB', 'BC', 'CD', 'DB', 'BE', 'ED', 'DA'] [1, 2, 1, 2, 2]
['EA', 'AB', 'BE', 'ED', 'DC', 'CB', 'BD', 'DA'] [1, 2, 1, 2, 2]
['EA', 'AB', 'BE', 'ED', 'DB', 'BC', 'CD', 'DA'] [1, 2, 1, 2, 2]
['EA', 'AB', 'BD', 'DC', 'CB', 'BE', 'ED', 'DA'] [1, 2, 1, 2, 2]
['EA', 'AB', 'BD', 'DE', 'EB', 'BC', 'CD', 'DA'] [1, 2, 1, 2, 2]
['EA', 'AD', 'DC', 'CB', 'BE', 'ED', 'DB', 'BA'] [1, 2, 1, 2, 2]
['EA', 'AD', 'DC', 'CB', 'BD', 'DE', 'EB', 'BA'] [1, 2, 1, 2, 2]
['EA', 'AD', 'DE', 'EB', 'BC', 'CD', 'DB', 'BA'] [1, 2, 1, 2, 2]
['EA', 'AD', 'DE', 'EB', 'BD', 'DC', 'CB', 'BA'] [1, 2, 1, 2, 2]
['EA', 'AD', 'DB', 'BC', 'CD', 'DE', 'EB', 'BA'] [1, 2, 1, 2, 2]
['EA', 'AD', 'DB', 'BE', 'ED', 'DC', 'CB', 'BA'] [1, 2, 1, 2, 2]
['EB', 'BA', 'AE', 'ED', 'DC', 'CB', 'BD', 'DA'] [1, 2, 1, 2, 2]
['EB', 'BA', 'AE', 'ED', 'DB', 'BC', 'CD', 'DA'] [1, 2, 1, 2, 2]
['EB', 'BA', 'AD', 'DC', 'CB', 'BD', 'DE', 'EA'] [1, 2, 1, 2, 2]
['EB', 'BA', 'AD', 'DB', 'BC', 'CD', 'DE', 'EA'] [1, 2, 1, 2, 2]
['EB', 'BC', 'CD', 'DE', 'EA', 'AB', 'BD', 'DA'] [1, 2, 1, 2, 2]
['EB', 'BC', 'CD', 'DE', 'EA', 'AD', 'DB', 'BA'] [1, 2, 1, 2, 2]
['EB', 'BC', 'CD', 'DA', 'AB', 'BD', 'DE', 'EA'] [1, 2, 1, 2, 2]
['EB', 'BC', 'CD', 'DA', 'AE', 'ED', 'DB', 'BA'] [1, 2, 1, 2, 2]
['EB', 'BC', 'CD', 'DB', 'BA', 'AE', 'ED', 'DA'] [1, 2, 1, 2, 2]
['EB', 'BC', 'CD', 'DB', 'BA', 'AD', 'DE', 'EA'] [1, 2, 1, 2, 2]
['EB', 'BD', 'DC', 'CB', 'BA', 'AE', 'ED', 'DA'] [1, 2, 1, 2, 2]
['EB', 'BD', 'DC', 'CB', 'BA', 'AD', 'DE', 'EA'] [1, 2, 1, 2, 2]
['EB', 'BD', 'DE', 'EA', 'AB', 'BC', 'CD', 'DA'] [1, 2, 1, 2, 2]
['EB', 'BD', 'DE', 'EA', 'AD', 'DC', 'CB', 'BA'] [1, 2, 1, 2, 2]
['EB', 'BD', 'DA', 'AB', 'BC', 'CD', 'DE', 'EA'] [1, 2, 1, 2, 2]
['EB', 'BD', 'DA', 'AE', 'ED', 'DC', 'CB', 'BA'] [1, 2, 1, 2, 2]
Observatii... nu sunt solutii decat daca se pleaca din A.... cele din E sunt doar o oglindire a solutiilor din A
Sper sa te ajute cu ceva 
thx guys....cu arbori.....nu prea vad eu cum se poate......orikum..ms moolt.....eh..am abia 3 ani de c++ ...inka am de invatzat....insa ma obsedeaza problema asta,si nu ma las pan n`o rezolv..... (Btw.. sa dat la olimpiada nationala aqu` 2 ani )