黑马程序员技术交流社区
标题:
一个c#算法题
[打印本页]
作者:
李朋霏
时间:
2012-7-16 00:13
标题:
一个c#算法题
以前看到的一个题,一直没有解出来。
遍历100以内符合勾股定理的整数,并且求出符合条件的数量。(a*a+b*b=c*c)
我的解题步骤是:
{
int a=1,b=1,c=1;
for(a=1;a<100;a++)
{
for(b=1;b<100;b++)
{
c=int.parse(Math.sqar(a*a+b*b+c*c))
if(c<100)
{console.write(a,b,c);}
}
}
但总是报错,还有求符合条件A,B,C的数量更无从下手了?
作者:
赵学辉
时间:
2012-7-16 08:05
static void Main(string[] args)
{
int zhi1,zhi2;
double xie3;
for (zhi1 = 3; zhi1 <100; zhi1++)
{
for (zhi2 = 4; zhi2 <100; zhi2++)
{
xie3 =Math.Sqrt(zhi1*zhi1+zhi2*zhi2);
if (xie3 <= 100)
{
if (xie3 - Math.Truncate(xie3) == 0)//判断是不是整数,不是整数就不要了
{
if (sanjiaoxing(zhi1, zhi2, Convert.ToInt32(Math.Truncate(xie3))))
{
Console.WriteLine("勾股数为:{0},{1},{2}", zhi1, zhi2, xie3);
}
}
}
}
}
Console.ReadKey();
}
public static bool sanjiaoxing(int bian1, int bian2, int bian3)//成为三角形的判断条件,返回值为bool
{
bool zhisanjiaoxing;
if(bian1+bian2>bian3)
{
if (bian3 - bian2 < bian1)
{
if (bian3 > bian1 && bian3 > bian2)
{
zhisanjiaoxing = true;
}
else
{
zhisanjiaoxing = false;
}
}
else
{
zhisanjiaoxing = false;
}
}
else
{
zhisanjiaoxing=false;
}
return zhisanjiaoxing;
}
}
复制代码
这个我写的也调试了可以,可以希望你帮到你!
作者:
李朋霏
时间:
2012-7-16 10:42
不错 下面这个判断是否符合三角形的条件我是没有想到的!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2