Pagini: [1]   În jos
  Imprimă  
Ajutor Subiect: Numere pitagoreice  (Citit de 4444 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
Anonymous97
Strain


Karma: -1
Deconectat Deconectat

Mesaje: 9



Vezi Profilul
« : Martie 27, 2013, 17:39:47 »

Se da un numar n,sa se verifice daca este numar pitagoreic.
(a^2+b^2=n^2)

Ma poate ajuta si pe mine cineva cu o idee de unde sa incep va rog?
Nu am nici ce'a mai mica idee de unde sa incep ... Ma gandeam prima data sa folosesc un contor care sa parcurga numerele din intervalul (1;n) si sa verifice ... ceva ... nu stiu ce Aha ... dar avand in vedere ca nici nu stiu ce ar putea verifica si ca ar putea fi un interval ff mare de parcurs pt unele numere nu prea cred ca ar fi o rezolvare buna ...
Memorat
pauldb
Nu mai tace
*****

Karma: 821
Deconectat Deconectat

Mesaje: 1.901



Vezi Profilul
« Răspunde #1 : Martie 27, 2013, 17:55:33 »

Ai putea sa-l fixezi pe a cu o parcurgere la de 1 la n cu ai sugerat si tu. Apoi sa verifici daca exista b astfel incat conditia de numar pitagoreic sa fie adevarata. Pe scurt, sa verifici daca n2-a2 este patrat perfect. La verificare, ar putea sa-ti fie utila functia sqrt ce returneaza radicalul unui numar.
Memorat

Am zis Mr. Green
Anonymous97
Strain


Karma: -1
Deconectat Deconectat

Mesaje: 9



Vezi Profilul
« Răspunde #2 : Martie 27, 2013, 18:21:13 »

Interesant ...  Think
Incerc sa scriu acum algoritmul si revin cu edit ^^
Mersi frumos.
Memorat
Anonymous97
Strain


Karma: -1
Deconectat Deconectat

Mesaje: 9



Vezi Profilul
« Răspunde #3 : Martie 27, 2013, 18:53:28 »

#include <iostream>
#include <cmath>

using namespace std;

int main()
{
    int n,a=0,i,b=0;
    cout<<"n=";cin>>n;
    for (i=1; i<=n; i++)
    {
        a=i*i;
        n=n*n;
        b=n-a;
        if (sqrt(b)==int(sqrt(b)))
            cout<<sqrt(a)<<' '<<sqrt(b);
    }
    return 0;
}


Deci...asta am facut pana acum dar dintr'un motiv oarecare nu merge...
Dar in schimb daca modific "for (i=1; i<=n; i++)" in "for (i=3; i<=3; i++)" pt n=5 imi afiseaza 4 si 3(corect...) sau "for (i=8; i<=8; i++)" pt n=10 afiseaza 6 si 8 ...
Ce e in neregula Sad?
Memorat
visanr
Nu mai tace
*****

Karma: 168
Deconectat Deconectat

Mesaje: 213



Vezi Profilul
« Răspunde #4 : Martie 27, 2013, 18:56:47 »

Din cate vad, il modifici pe n in for-ul acela. Fa ceva de genul: a = i * i; b = n * n - a;
Memorat
Anonymous97
Strain


Karma: -1
Deconectat Deconectat

Mesaje: 9



Vezi Profilul
« Răspunde #5 : Martie 27, 2013, 19:01:39 »

Am modificat.Acum merge bine ^^ Mersi frumos ^^...
Memorat
Pagini: [1]   În sus
  Imprimă  
 
Schimbă forumul:  

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