在n个火柴里面拿3根出来拼接成最大三角形的周长

举报
chenyu 发表于 2021/07/26 23:22:55 2021/07/26
【摘要】 求三角形max周长public class 求三角形max周长 {public static void main(String[] args) { /** * 有n个棍子 每个棍子的长度是a[i] * 3<=n<=100; * 1<=a[i]<=100; */System.out.println("请输入n根绳子");Scanner inpu...

  
  1. 求三角形max周长
  2. public class 求三角形max周长 {
  3. public static void main(String[] args) {
  4. /**
  5. * 有n个棍子 每个棍子的长度是a[i]
  6. * 3<=n<=100;
  7. * 1<=a[i]<=100;
  8. */
  9. System.out.println("请输入n根绳子");
  10. Scanner input =new Scanner(System.in);
  11. int n=input.nextInt();
  12. System.out.println("每根绳子的长度");
  13. int[] a=new int[n];
  14. for(int i=0;i<n;i++){
  15. a[i]=input.nextInt();
  16. }
  17. int max=0;
  18. //让i<j<k 这样棍子就不会重复选中了 我一开始没有想到 以后要记住
  19. for(int i=0;i<n;i++){
  20. for(int j=i+1;j<n;j++){
  21. for(int k=j+1;k<n;k++){
  22. //三条边的总和
  23. int allLen=a[i]+a[j]+a[k];
  24. //求三个数的最大值的时候 可以先求任意两个的最大值 然后再把这个最大值和第三个数进行比较得到最大值
  25. int maxLength=maxValue(a[i],maxValue(a[j],a[k]));
  26. //剩下的两边之和 可以有总长度减去那个最大值
  27. int rest=allLen-maxLength;
  28. if(rest>maxLength){
  29. //如何可以组成三角形 然后将答案更新
  30. max=maxValue(max,allLen);
  31. }
  32. }
  33. }
  34. }
  35. if(max==0){
  36. System.out.println("无论怎么组合都不能组成三角形");}
  37. else{
  38. System.out.println("最大的周长是"+max);
  39. }
  40. }
  41. //求2个数字里面最大的数字
  42. public static int maxValue(int a,int b){
  43. int max=0;
  44. if(a>b){
  45. max=a;
  46. }else{
  47. max=b;
  48. }
  49. return max;
  50. }
  51. }

 

文章来源: chenyu.blog.csdn.net,作者:chen.yu,版权归原作者所有,如需转载,请联系作者。

原文链接:chenyu.blog.csdn.net/article/details/49284197

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。