毕达哥拉斯三角形

时间:2010-12-24 13:43:29

标签: c# math

我想问你这个编程部分,一切都好吗? 任务是: 写出毕达哥拉斯定理的伪代码或流程图和代码 - 对于具有整数类型的三个肋(a,b和c)的直角三角形

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);
            }
        }
    }
} 

2 个答案:

答案 0 :(得分:2)

找到毕达哥拉斯三元组要比迭代每组三元组要容易得多。例如,请查看http://en.wikipedia.org/wiki/Formulas_for_generating_Pythagorean_triples

此外,最好通过将其与自身相乘而不是使用pow(i,2)来平方整数。

答案 1 :(得分:1)

您的代码运行良好,但会重复打印。从 KendiA 计算 KendiB 可以解决您的问题

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

这是最简单的方式

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);
}