黑马程序员技术交流社区
标题: 面试中的一个题目 [打印本页]
作者: 胡超 时间: 2013-12-15 11:01
标题: 面试中的一个题目
写一个方法,根据给定的边长算出能组合成三角形的所有可能。
给定:一个整形数组,例:int[]={1,2,3},来代表边长,
要求:计算这些边长能构成三角形的所有可能并打印。
作者: 胡永城 时间: 2013-12-15 14:26
两边之和大于第三边,两边之差小于第三边。。。。。。前提边大于0
作者: 熊猫86 时间: 2013-12-15 23:19
本帖最后由 熊猫86 于 2013-12-15 23:23 编辑
- public class TriangleTest {
- public static void main(String[] args) {
- int[] arr = {1,2,3,4,5};
- Triangle tri = new Triangle();
- tri.print(arr);
- }
- }
- class Triangle {
- public void print(int[] arr){
- int count = 0;
- for(int x=0; x<arr.length-2; x++) {
- for(int y=x+1; y<arr.length-1; y++) {
- for(int z=y+1; z<arr.length; z++) {
- if(arr[x]>0 && arr[y]>0 && arr[z]>0
- && (arr[x]+arr[y]>arr[z])
- && (arr[x]+arr[z]>arr[y])
- && (arr[z]+arr[y]>arr[x])){
- count++;
- System.out.println("["+arr[x]+","
- +arr[y]+","
- +arr[z]+"]");
-
- }
-
- }
- }
- }
- System.out.println("共可以组成"+count+"个三角形");
- }
- }
复制代码 三层for循环,只要满足任意两边之和大于第三边且三边均为正数即可。
打印结果:
[2,3,4]
[2,4,5]
[3,4,5]
共可以组成3个三角形
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |