C# 毕达哥拉斯三角

C# 毕达哥拉斯三角,c#,math,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++

我想问一下这个程序部分,一切都好吗? 任务是: 编写毕达哥拉斯定理的伪代码或流程图和代码-用于整数类型的带三条肋骨(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);
            }
        }
    }
} 
int KendiA=0;
int-KendiB=0;
int H=0;
字符串Trekendeshi=null;
int-gjetja=0;

对于(KendiA=1;KendiA来说,找到毕达哥拉斯的三元组要比遍历每一组三元组容易得多


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

您的代码运行良好,但它会打印重复的整数。CountKendiBfromKendiA解决了您的问题

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

用于(KendiA=1;KendiA Ouch。请花点时间解释一下您在这里试图做什么。试图解释应该有助于您理解为什么这在所有级别上都是错误的。在完成内部For循环时设置gjetja=0可以解决您的问题吗?@Muggen Question说是psuedo代码,但这看起来也不像伪代码。它看起来像Java。@穆根:显然不是。但这是一个较小的问题。好吧,它应该会起作用。它可以通过几种方式改进。它不是C,而是Java?是的,你有一个权利,但在这行中“for(H=1;H)只是一个例子。你可以根据自己的需要更改10
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);
}