Sunt incepator in ale programarii si am o problema : Se da un nr N natural si un nr B care poate lua val de la 1 la 9 .trebuie sa verific daca numarul N e in baza B cum fac asta cum verific ca un nr N e scris intr-o baza B?
Sunt incepator in ale programarii si am o problema : Se da un nr N natural si un nr B care poate lua val de la 1 la 9 .trebuie sa verific daca numarul N e in baza B cum fac asta cum verific ca un nr N e scris intr-o baza B?
Suna cam ciudat problema. Dupa continutul problemei nu poti sa verifici decat care este cea mai mare cifra folosita in numarul N. Daca e 1 de exemplu e in baza 2. Problema intervine de exemplu atunci cand N sa zicem ca ar fi 1011 ... numarul poate fi si in baza 2,3,4,5,6,7,8,9 sau 10. Nu cred ca as putea sa-ti spun in ce baza e fara mai multe date. Unde ai gasit problema asta?
Raspunsul idiot ar fi ca 1011 e in baza 2 dar logic nu poti exclude ca nu ar putea fi intr-o baza mai mare. Iar C-ul oricum iti interpreteaza numarul fie ca e binar, octal, decimal sau hexa asa ca nu prea vad rostul problemei. Esti cumva intr-a IX-a?
Last edited by alex707; 16-12-2010 at 14:22.
Success is not final, failure is not fatal: it is the courage to continue that counts. --Sir Winston Churchill
Problema e cat se poate de simpla, si clar formulata. Trebuie sa spui daca un numar e intr-o anumita baza, care ti se da. Ce conteaza ca poate fi in mai multe baze, ti se da o baza si trebuie sa afli daca e sau nu in baza respectiva.
Problema se rezolva prin verificarea tuturor cifrelor care compun acel numar. Daca fiecare cifra este strict mai mica decat baza B, atunci numarul este in baza B.
Cod:bool IsNumberInBaseB(unsigned int N, unsigned short B) { bool ret = true; unsigned char c; while (N != 0) { c = N % 10; N = N / 10; if (c >= B) { ret = false; break; } } return ret; }
pai si eu ce am spus?
Problema ambigua si fara rost, was my point. Parerea mea e ca atunci cand inveti ceva pornesti de la ceva simplu care poti sa folosesti mai departe sa iti dezvolti cunostiintele. Problema nu are rost pentru ca in real life asa ceva nu iti foloseste niciodata.
Parerea mea.
Last edited by alex707; 24-12-2010 at 17:00.
Success is not final, failure is not fatal: it is the courage to continue that counts. --Sir Winston Churchill
Pai, in primul rand, tu in loc sa dai un raspuns la problema, ai inceput sa te invarti in jurul cozii (mai precis spus, in jurul raspunsului). Raspunsul tau in niciun caz nu raspundea problemei puse. Foarte multe probleme nu au rost in viata reala, si nu ar trebui sa te preocupe asta. Multe probleme au fost create doar pentru a dezvolta capacitatea de gandire, nu neaparat sa iti arate cum sa te descurci in viata.
Nu ti se pare ca asta era raspunsul care l-ai dat si tu? Am cerut lamuriri inainte sa dau un raspuns prin niste linii banale de cod si dupa cate vezi pe cel care a initiat thread-ul nici nu-l mai intereseaza. Asta inseamna la tine "invartit in jurul cozii"? Sincer n-am nici cea mai vaga idee ce incerci sa demonstrezi. Sau iti plac discutiile in contradictoriu chiar si atunci cand nu te contrazice nimeni?
Success is not final, failure is not fatal: it is the courage to continue that counts. --Sir Winston Churchill
Iata cateva variante:
Descarcati varianta potrivita: