我想问你这个编程部分,一切都好吗? 任务是: 写出毕达哥拉斯定理的伪代码或流程图和代码 - 对于具有整数类型的三个肋(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);
}
}
}
}
答案 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);
}