P5728 【深基5.例5】旗鼓相当的对手

在这里插入图片描述

  • 二维数组进行记录,二重循环不重不漏
#include<iostream>
#include<cmath>
using namespace std;
int s[1001][4],tot;
int main()
{
    int n;cin >> n;
    for(int i = 1;i <= n;i++)
    {
        cin >> s[i][0] >> s[i][1]>>s[i][2];
        s[i][3] = s[i][0]+s[i][1]+s[i][2];
    }
    for(int i = 1;i < n;i++)
        for(int j = i+1;j <= n;j++)
        {
            if(abs(s[j][0]-s[i][0])<=5&&abs(s[j][1]-s[i][1])<=5&&abs(s[j][2]-s[i][2])<=5&&abs(s[j][3]-s[i][3])<=10)
                tot++;
        }
    cout << tot;

}

大佬

结构体

#include<iostream>
#include<cmath>//我用的abs函数,abs就是求绝对值的函数。它的头文件是cmath。
using namespace std;
int n,ans=0;
struct p{//结构体
    int a,b,c;
}q[1010];//分号别忘了!
int main(){
    cin>>n;
    for(int i=1;i<=n;i++){//输入
        cin>>q[i].a>>q[i].b>>q[i].c;
    }
    for(int i=1;i<n;i++){
        for(int j=i+1;j<=n;j++){//这样不会重复计算,自己举个例子好好想想。
            if(abs(q[i].a-q[j].a)<=5/*利用abs函数*/&&abs(q[i].b-q[j].b)<=5&&abs(q[i].c-q[j].c)<=5&&
            abs(q[i].a+q[i].b+q[i].c-(q[j].a+q[j].b+q[j].c))<=10){
                ans++;//答案+1
            }
        }
    }
    cout<<ans<<endl;//输出
    return 0;//拜拜!
}
发布了372 篇原创文章 · 获赞 48 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/dghcs18/article/details/104310310