Gogolo
Gogolo

Reputation: 128

Pythagoras triangle

I would like to ask you about this programing part, is it everything ok? the task was: Write the pseudocode or flow diagram and code for the theorem of Pythagoras - for right-angle triangle with three ribs (a, b, and c) of type integer

int KendiA = 0;
int KendiB = 0;
int H = 0;
string Trekendeshi = null;
int gjetja = 0;

for (KendiA = 1; KendiA <= 15; KendiA++)
{
    for (KendiB = 1; KendiB <= 15; KendiB++)
    {
        for (H = 1; H <= 30; H++)
        {
            if ((Math.Pow(KendiA, 2) + Math.Pow(KendiB, 2) == Math.Pow(H, 2)))
            {
                gjetja = gjetja + 1;
                Trekendeshi = gjetja + "\t" + KendiA + "\t" + KendiB + "\t" + H;
                Console.WriteLine(Trekendeshi);
            }
        }
    }
} 

Upvotes: 1

Views: 3139

Answers (2)

user467871
user467871

Reputation:

Your code works well but it prints repeated ones. Count KendiB from KendiA solves your problem

for (KendiA = 1; KendiA <= 15; KendiA++){
       for (KendiB = KendiA; KendiB <= 15; KendiB++){

Here is simplest way

for(int i=2; i<10; i++){
   int a = 2*i;
   int b = i*i-1;
   int c = i*i+1;
   System.out.println(a + "  " + b + "  "  + c);
}

Upvotes: 1

Paul Tomblin
Paul Tomblin

Reputation: 182762

It's much easier to find pythagorean triples than to iterate through every set of three. Have a look at http://en.wikipedia.org/wiki/Formulas_for_generating_Pythagorean_triples for instance.

Also, it's better to square integers by multiplying it with itself rather than using pow(i,2).

Upvotes: 2

Related Questions