能减轻别人的负担,能多做点,那就多做点。
以前常注意,数学教科书中的例题都很精炼,很巧妙。听老师讲例题的时候常常感觉很轻松、很好懂(后面的练习是不一样的风格),因而常有“一学就会,一做就错!”的尴尬。
写这个程序的初衷是在于,在学习java过程中,涉及到计算三维坐标距离。举例进行说明验证,需要一些实例。一般问题举例,能用整数,尽量不用小数,旁枝侧叶尽可能精简,以免影响主干的理解。因为目的在于说明问题,而不在于游山玩水。
如果在无关问题上浪费了过多精力,占用了过多注意力,那在中心问题上,精力被削弱,注意力被分散,不利于说明问题。不能算是一个好示例。对不起观众,也不利于后期温习。
数学中的例题因精炼、精巧,而成为经典。学习,并试着向这些例题看齐。因此,产生了这个处理:a*a = b * b * b (a,b∈N*),找出小范围内平方数=立方数的自然数。
/*
* 需求:
* 例举50以内的某个自然数的平方刚好等于某自然数的立方?
*/
public class TestDistance
{
public static void main(String[] args){
int j;
int result;
boolean flag;
int n = 0;
for(int i = 1;i < 50;i++){
flag = false;
result = i * i;
for(j = 1;j < 14;j++){ //"14"的选取是考虑循环运算的效率;50 * 50 ≈ 14 * 14 * 14
if(result == j * j * j){
n += 1;
flag = true;
break;
}
}
if (flag == true) {
System.out.println("第" + n + "组," + i + "^" + "2" + "=" +
j + "^" + "3" + "=" + result);
}
}
}
}
下图为运行结果:
如上图可知,自然数在50以内,只有这3组符合条件。
为了能看到多一点的组,将50同时增加一个数量级,变为500.即将上面程序中第08行代码的i<50,改成i<500.j随之调整为65.因500 * 500 ≈ 65 * 65 * 65.
下面是修改代码后,运行的结果: