Esercizio 9

Stato
Discussione chiusa ad ulteriori risposte.

imported_ShuraBozz

Utente Silver
20 Ottobre 2008
44
0
0
62
Codice:
Una tripletta di pitagora è un set di tre numeri naturali, a < b < c, per ognuno,
a^(2) + b^(2) = c^(2)

Per esempio, 3^(2) + 4^(2) = 9 + 16 = 25 = 5^(2).

Esiste  esattamente una tripletta pitagoriana che dia a + b + c = 1000.
Trova il prodotto abc.

Soluzione in C:
http://shurabozz.pastebin.com/f509dbeb6
 
ma nessuno ha ancora risposto qui??? ai ai ai,provvedo io allora caro mio shura :p
Codice:
#include<iostream>
#include<math.h> //per usare sqrt
using namespace std;

main(){
	int a,b,c;
	for(c=999;c>1;c--){
		for(a=c;a>1;a--){
			for(b=c;b>1;b--){
				if((a*a)+(b*b)==(c*c) && (a+b+c)==1000){
					cout<<"il prodotto -> "<<a*b*c<<endl;
				}
			}
		}
	}
}
 
Ecco il mio in C (quasi identico a quello di Shura...).

Codice:
#include <stdio.h>

int main()
{
    int a, b, c;
    for(a = 1; a < 1000; a++){
          for(b = 1; b < 1000; b++){
                for(c = 1; c < 1000; c++){
                      if((a*a)+(b*b)==(c*c) && ((a + b + c) == 1000))
                                           printf("%d * %d * %d = %d\n", a, b, c, a*b*c);
                }
          }
    }
    return 0;
}

Giusto è giusto... Piano piano sto imparando :asd::asd::asd:
 
con due cicli.

Codice:
#include <stdio.h>

int main(void)
{ int a,b,c;
   
  for(a=1; a<1000; a++)
     for(b=a+1; b<1000; b++)
            if(a + b + (c = 1000 - a - b) == 1000 && (a*a + b*b == c*c))
            {
              printf("a = %d, b = %d, c = %d\n",a,b,c);
              printf("a*b*c = %d\n",a*b*c);
            }
  return 0;
}
 
Stato
Discussione chiusa ad ulteriori risposte.