România
Roportal.ro

va rog mult, ajutati-ma!

Început de lcz, Mar 15 aug 2006 · 10 răspunsuri · 8.621 vizualizări · închis

lcz8 mesaje#1

:doh: 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

Mallorca3.709 mesaje#2

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?

madalina_604 mesaje#3
lcz a scris:
:doh: 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

lcz8 mesaje#4

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

Cavaleru' Jedi9.256 mesaje#5

uite cum s-ar implementa asta in python :focus:

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

Dyna``4 mesaje#7

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????!!

Spyder582 mesaje#8
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! :angry:

Cavaleru' Jedi9.256 mesaje#9
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 :angry:

Dyna``4 mesaje#10

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 )

← Înapoi la Arhiva