三角形问题

skyboy0720 2003-10-19 05:54:51
public class Testf
{
public static void main ( String [ ] args )
{
int max = 10, l1, l2, l3;
for ( int i = 1; i <= max; i ++ )
{
for ( int j = 1; j <= max; j ++ )
{
for ( int k = 1; k <= max; k ++ )
{
l1 = ( int ) Math.pow ( i, 2 );
l2 = ( int ) Math.pow ( j, 2 );
l3 = ( int ) Math.pow ( k, 2 );
System.out.print ( "l1+l2= " + ( l1 + l2 ) + "l3= " + l3 );
if ( 13 == ( l2 + l1 ) )
{
System.out.println ( "l1= " + i + " " + "l2= " + j + " " + "l3= " + k );
}
}
}
}
}
}


这是我写的一个关于勾股定理的问题,为什么运行结果却不正确,算法错在哪呢?!
...全文
49 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
skyboy0720 2003-10-19
  • 打赏
  • 举报
回复
哈哈,我想起来了,运行结果全是L1=3,L2=2,然后L3是1到10。

真的是写成13了,我显示器焦距不好了,很不清楚,晕啊!!谢谢提醒
hometown563 2003-10-19
  • 打赏
  • 举报
回复
public class Testf
{
public static void main ( String [ ] args )
{
int max = 10, l1, l2, l3 ,t;
for ( int i = 1; i <= max; i ++ )
{
for ( int j = 1; j <= max; j ++ )
{
for ( int k = 1; k <= max; k ++ )
{
l1 = ( int ) Math.pow ( i, 2 );
l2 = ( int ) Math.pow ( j, 2 );
l3 = ( int ) Math.pow ( k, 2 );


if ( l3 == ( l2 + l1 ) )
{ System.out.println ( "l1+l2=" + ( l1 + l2 ) + " " + "l3= " + l3 );
System.out.println ( "l1= " + i + " " + "l2= " + j + " " + "l3= " + k );
}
}
}
}
}
}

这样就可以了,System.out.print ( "l1+l2= " + ( l1 + l2 ) + "l3= " + l3 );写在外面,那不是每次都要循环了吗?还有把if ( l3 == ( l2 + l1 ) )中l3 写成13,
prosong 2003-10-19
  • 打赏
  • 举报
回复
if ( 13 == ( l2 + l1 ) )
好像写的是 十三 不是 L3
wuhong110 2003-10-19
  • 打赏
  • 举报
回复
int max = 10, l1, l2, l3;
没有明确赋值啊

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧