Pagini: [1]   În jos
  Imprimă  
Ajutor Subiect: Triunghiul numerelor,sa se afle pozitia numarului citit.  (Citit de 1270 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
Samurah
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 4



Vezi Profilul
« : Decembrie 04, 2013, 22:05:15 »

Salutare! Am un triunghi al numerelor.

           1               Linia 1
         2  3             Linia 2
       4  5  6           Linia 3
     7 8  9  10 (si asa pana la infinit)    Linia 4 ,spre infinit.

Trebuie sa creez un program in c++ care sa imi afiseze pe ce linie se afla numarul citit...Am incercat si tot am incercat dar nu mi-a reusit nimic.

Daca puteti sa imi explicati si sa imi dati si rezolvarea ar fi perfect,sau doar rezolvarea.

Multumesc mult!
« Ultima modificare: Decembrie 05, 2013, 11:34:45 de către Pavel Andrei » Memorat
romyk
Strain
*

Karma: 5
Deconectat Deconectat

Mesaje: 40



Vezi Profilul
« Răspunde #1 : Decembrie 05, 2013, 12:23:59 »

Salut,

Daca observi ultimul numar de pe fiecare linie n e suma de la 1 pana la n, suma se poate afla asa s=n(n+1)/2. Sa zicem ca x este numarul citit deci el se afla pe linia n daca n(n+1)/2=x adica n(n+1)-2x=0. Din aceasta ecuatie necunoscuta este n deci o sa ai doua solutii n1=(sqrt(1+8x)-1)/2 si n2=(-sqrt(1+8x)-1)/2, a doua este negativa deci nu este buna. n trebuie sa fie intreg deci scrii n=(int)(sqrt(1+8x)-1)/2.
Rotunjirea se face la n-1 deci mai trebuie sa adaugi 1 la n, adica n=(int)(sqrt(1+8x)-1)/2+1. Mai este o problema cand radicalul poate fi numar intreg deci nu se mai face rotunjirea la n-1, ca sa rezolvi si asta verifici daca (int)sqrt(1+8*n)==sqrt(1+8*n) si daca e adevarata scazi 1 din n. Mai ramane sa afisezi n.

Sper ca ai inteles. Codul il scrii si tu ca nu e mult.
Memorat
Samurah
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 4



Vezi Profilul
« Răspunde #2 : Decembrie 05, 2013, 22:42:08 »

Pai asta e...nu stiu cum sa le transcriu in cod,ca formulele le-am gasit si eu inainte de asta,multumesc totusi.

Poti sa imi scrii astea si in cod? Multumesc anticipat.
Memorat
Pagini: [1]   În sus
  Imprimă  
 
Schimbă forumul:  

Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines