JAVA作业。。。查出函数错误并修改。急求大侠们指教啊!悬赏分20!

[复制链接]
查看11 | 回复1 | 2011-5-10 13:46:26 | 显示全部楼层 |阅读模式
在一个直角三角形中,三条边a、b、c的长度都为整数, 且一条直角边a的长度已确定,斜边c的长度不能超过 maxc,设计一个算法找出满足上述条件的所有直角三角形。
以下是该求解过程的一个函数。它虽然可以正确的找出满足条件的直角三角形,但是执行效率不高,请优化这个函数。
提示:该函数至少有3个地方需要优化
注:请直接在程序中修改错误
/**
* 执行操作
* @param a:直角三角的已知一直角边
* @param maxc:斜边的最大值
*/
public StringtoDo(int a, int maxc) {

if (a < 1 || maxc < 1 || maxc < a) {

System.err.println("无效参数!");

}

//保存所有的有效的三角型的信息

String availableTriangle = "";

/*寻找所有满足条件的三角形*/

for (int c = a + 1; c < maxc; c++) {

for (int b = c - a + 1; b < c; b++) {

long aTmp = a * a;

long cTmp = c * c;

if ( (aTmp + b * b) == cTmp) {
availableTriangle += "a:" + a + ",b:" + b + ",c:" + c + "\n";

}

}

}

return availableTriangle;
}

回复

使用道具 举报

千问 | 2011-5-10 13:46:26 | 显示全部楼层
/** * 执行操作 * @param a 直角三角的已知一直角边 * @param maxc 斜边的最大值 */public static String toDo(int a, int maxc) {if (a < 1 || maxc < 1 || maxc < a) {System.err.println("无效参数!");return null;}StringBuffer availableTriangle = new StringBuffer();//保存所有的有效的三角型的信息/*寻找所有满足条件的三角形*/for (int c = a+1; c <=
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行