C++--找出三条能构成三角形且周长最大的边的一个普通方法

    技术2022-07-11  74

    题目:给定由一些正数(代表长度)组成的数组 A,返回由其中三个长度组成的、面积不为零的三角形的最大周长。如果不能形成任何面积不为零的三角形,返回 0。

    #输出示例 输入:[2,1,2] 输出:5

    输入:[1,5,1] 输出:0

    输入:[3,2,3,4] 输出:10

    输入:[3,6,2,3] 输出:8

    #include <iostream> using namespace std; #define M 10 int isTraight(int a,int b,int c) { if(a+b<=c||a+c<=b||b+c<=a) return 0; else return 1; } int main() { char s; int num; int a[M],n=0;//n是计算输入的数字个数 cout<<"输入:"; cin>>s; for(int i=0;s!=']';i++){ cin>>num; a[i]=num; n++; cin>>s; } int max=0; for(int i=0;i<n;i++){ for(int j=i+1;j<n;j++){ for(int k=j+1;k<n;k++){ if(isTraight(a[i], a[j], a[k])==1){ int c=a[i]+a[j]+a[k]; if(c>max) max=c; } } } } cout<<"输出:"<<max<<endl; return 0; }

    #输出

    Processed: 0.012, SQL: 9