2 eternity null Eternity_null 于 2016.03.08 21:53 提问

用java实现,三边和小于定值的所有能可以组成三角形的三边

比如说:
求所有三边和小于10的,能组成三角形的三边,以数组的形式输出。
三边全部为正整数!
求各位大神帮忙看看这个算法应该怎么写。

2个回答

Eternity_null
Eternity_null   2016.03.08 22:19
已采纳

好吧,我自己终结我自己:
package face.test;

public class AddTest {
public static void main(String[] args) {
int a,b,c;
double d;
for (int i = 0; i < 999; i++) {
a = i/100;
b = (i-100*a)/10;
c = i%10;

        if (a+b+c < 10 && a+b>c && a-b <c && a !=0 && b!= 0 && c!=0 && a>=b) {
            d = (double)(a+b+c)/2;
            System.out.print(a + "\t" + b +"\t" + c);
            System.out.println("面积" + Math.sqrt(d*(d-a)*(d-b)*(d-c)));
        }

    }
}

}

1 1 1 面积: 0.4330127018922193
2 1 2 面积: 0.9682458365518543
2 2 1 面积: 0.9682458365518543
2 2 2 面积: 1.7320508075688772
2 2 3 面积: 1.984313483298443
3 1 3 面积: 1.479019945774904
3 2 2 面积: 1.984313483298443
3 2 3 面积: 2.8284271247461903
3 2 4 面积: 2.9047375096555625
3 3 1 面积: 1.479019945774904
3 3 2 面积: 2.8284271247461903
3 3 3 面积: 3.897114317029974
4 1 4 面积: 1.984313483298443
4 2 3 面积: 2.9047375096555625
4 3 2 面积: 2.9047375096555625
4 4 1 面积: 1.984313483298443

sinat_32660629
sinat_32660629   2016.03.08 21:58

任意两边和大于第三边,两边之差小于第三边
用前面一个条件基本可以做判定条件了

sinat_32660629
sinat_32660629 不好意思哈,这两天没看。 不过看回答你自己也已经知道如何穷举少量的数据了。 加油
一年多之前 回复
Eternity_null
Eternity_null 不过还是谢谢你了,没有你我钻牛角尖很久。
接近 2 年之前 回复
Eternity_null
Eternity_null 重点不是这个,这个我也知道。重点是穷举三边和小于10的所有数字,不过,我有思路了。穷举三边和小于10的正整数有什么难的麻。
接近 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!