依旧是遍历+判断,三角形任意两边之和大于第三边,读题!!!:连续的三个数!!!
#include<bits/stdc++.h>//万能头
int main()
{
int n;
scanf("%d",&n);
int num[n];
for(int i=0;i<n;i++){
scanf("%d",&num[i]);
}
int ans=0;
for(int i=0;i<n-2;i++){
if(num[i]+num[i+1]>num[i+2]&&num[i+1]+num[i+2]>num[i]&&num[i+2]+num[i+1]>num[i])ans++;
}//判断累加
printf("%d",ans);
return 0;
}
一开始看错题了(QAQ):以为是任选三个数据,这样的话得开三重循环了
#include<bits/stdc++.h>
int main()
{
int n;
scanf("%d",&n);
int num[n];
for(int i=0;i<n;i++){
scanf("%d",&num[i]);
}
int ans=0;
for(int i=0;i<n-2;i++){
for(int j=i+1;j<n-1;j++){
for(int q=j+1;q<n;q++){
if(num[i]+num[j]>num[q]&&num[i]+num[q]>num[j]&&num[q]+num[j]>num[i]){
ans++;
printf("%d%d%d\n",num[i],num[j],num[q]);
}
}
}
}
printf("%d",ans);
return 0;
}