问题描述
- 用java实现,三边和小于定值的所有能可以组成三角形的三边
-
比如说:
求所有三边和小于10的,能组成三角形的三边,以数组的形式输出。
三边全部为正整数!
求各位大神帮忙看看这个算法应该怎么写。
解决方案
好吧,我自己终结我自己:
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
解决方案二:
任意两边和大于第三边,两边之差小于第三边
用前面一个条件基本可以做判定条件了