先从数组里面通过循环取三个数(注意组合数的选取避免重复)再通过判断该三边是否构成三角形,运用任意两边之和大于第三边
int check(long long x, long long y,long long z){
if(x+y<=z||x+z<=y||y+z<=x){
return 0;
}
return 1;
}
int main(){
long long arr[104];
int n;
scanf("%d",&n);
for(int i=0;i<n;i++){
scanf("%lld",&arr[i]);
}
for(int i=0;i<n-2;i++){
for(int j=i+1;j<n-1;j++){
for(int k=j+1;k<n;k++){
if(check(arr[i],arr[j],arr[k])){
printf("%lld %lld %lld",arr[i],arr[j],arr[k]);
return 0;
}
}
}
}
printf("No solution");
return 0;
}

京公网安备 11010502036488号