Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Funzione perimetro triangoli
Forum - C/C++ - Funzione perimetro triangoli

Avatar
crack001 (Normal User)
Rookie


Messaggi: 52
Iscritto: 25/10/2007

Segnala al moderatore
Postato alle 14:40
Venerdì, 19/11/2010
Ciao a tutti raga...devo scrivere una funziona per 1 progetto universitario, ho provato a legge ma sinceramente non mi vengono idee utili per risolvere XD

la traccia è la seguente:

Codice sorgente - presumibilmente C/C++

  1. Scrivere una funzione int countIntTriangles(int p) che restituisca il numero di triangoli rettangoli con lati interi positivi (a meno dell'ordine dei lati) il cui perimetro è p.
  2.  
  3. Ad esempio se p = 12, la risposta è 1 perché c'è un solo triangolo rettangolo (con i due cateti lunghi 3 e 4 e l'ipotenusa lunga 5) che ha perimetro 12.
  4.  
  5. Si noti che il triangolo rettangolo ottenuto dal precedente cambiando l'ordine dei cateti non deve contare come ulteriore triangolo con perimetro p.




qualcuno di voi ha idee? cosi magari mi si accende la lampadina ascoltando altri pareri XD

PM Quote
Avatar
Giarados (Ex-Member)
Pro


Messaggi: 69
Iscritto: 25/07/2010

Segnala al moderatore
Postato alle 15:43
Venerdì, 19/11/2010
Non hai abbozzato proprio nulla?

Esistono i lati negativi?! :om:

PM Quote
Avatar
crack001 (Normal User)
Rookie


Messaggi: 52
Iscritto: 25/10/2007

Segnala al moderatore
Postato alle 16:41
Venerdì, 19/11/2010
sinceramente leggendo e pensando l'unica cosa che mi viene in mente è la seguente:

sfruttando l'esempio del perimetro = 12 si hanno i 2 cateti che sono 3 e 4 e l'ipotenusa che è 5, quindi tutto questo deriva dalla formula del teorema di pitagora:

5=radice(3^2+4^2)

ora fin qui ci sono, xo quello che mi domando è si può ottenere un triangolo da 1 perimetro inferiore a 12? cioè il programma se metto 10 cosa può darmi? usando quella formula di pitagora con perimetro a 10 non c'è niente, quindi questo mi fa pensare che i triangoli posso calcolarli solo da perimetri superiori a 12 giusto?

Ultima modifica effettuata da crack001 il 19/11/2010 alle 16:45
PM Quote
Avatar
Riki94 (Normal User)
Pro


Messaggi: 93
Iscritto: 30/07/2009

Segnala al moderatore
Postato alle 14:02
Sabato, 20/11/2010
La prima cosa che mi è venuta in mente è... che il perimetro può essere inferiore a 12.. pensa a p=3... 1=radice(1^2+1^2)
quindi possono essere minori di 12...
adesso.. non sarà la cosa più veloce o migliore, però è l'unica che mi è venuta in mente...  :asd::asd::asd:

se la funzione deve essere int, allora i 3 numeri cateto1,cateto2 e ipotenusa devono essere int.. e questo significa che devono essere tutti minori del perimetro... quindi nel caso del 12, cateto1<p cateto2<p ipotenusa<p;
quindi fai cicli for e provi tutti i numeri da 1 fino a p-1... tipo for(i=1,i<p;i++)

non so se funzioni... è la prima cosa che mi è venuta in mente...

PM Quote
Avatar
Alex (Ex-Member)
Expert


Messaggi: 441
Iscritto: 15/08/2005

Segnala al moderatore
Postato alle 18:29
Sabato, 20/11/2010
Ti consiglio questa lettura=) magari ti può far venire in mente la soluzione=)

http://it.wikipedia.org/wiki/Terna_pitagorica

PM Quote