三角形是由同一平面内不在同一直线上的三条线段首尾顺次连接所组成的封闭图形。在数学,建筑学上都有应用。
三角形有个特性,就是三角形的两条边的和大于第三条边。也就是说,如果有任意两条边的和小于等于第三条边,那么这三条边就无法构成三角形。
现在有n条长度为整数的边,请你输出哪三条边可以构成三角形。
#include<bits/stdc++.h> using namespace std; //注意:本程序所有下标均以0开始 int n; int arr[100]; int ans[3]; long long cnt=0; void DFS(int t,int c){ if(t>=3){//递归终止条件 if(____(1)____){//满足三角形的构成 for(int i=0;i<3;i++) printf("%d ",ans[i]);//输出 printf("\n"); cnt++; } return; } for(int i=c;____(2)____;i++){ ans[t]=____(3)____; DFS(t+1,____(4)____);//递归 } } int main(){ cin>>n; for(int i=0;i<n;i++) cin>>arr[i];//输入 sort(____(5)____);//从小到大排序 ____(6)____//调用DFS cout<<cnt; }