题目名字
思路
思路是首先输入一个整数n,然后输入n对整数a和x。然后通过两层循环遍历所有可能的组合,检查是否存在满足条件的组合。如果存在满足条件的组合,则输出"YES",否则输出"NO"。
坑点
- 数组下标从1开始,而不是从0开始,这可能导致在处理数组时出现错误。
- 没有对输入进行边界检查,可能导致输入超出数组范围。
- 没有考虑输入数据的有效性,比如a和x的取值范围,是否存在负数等情况。
实现步骤
- 使用循环读取n对整数a和x,并将它们存储在对应的数组中。
- 使用两层循环遍历所有可能的组合,检查是否存在满足条件的组合。
- 如果存在满足条件的组合,则输出"YES"并结束程序。
- 如果不存在满足条件的组合,则输出"NO"并结束程序。
代码
#include <iostream>
using namespace std;
int a[10000],x[10000];
int main()
{
int n;
cin>>n;
for(int i=1; i<=n; i++)
{
cin>>a[i]>>x[i];
}
for(int i=1; i<=n; i++)
{
for(int j=1; j<=n; j++)
if(i!=j)
{
if(a[i]+x[i]==a[j]&&a[j]+x[j]==a[i])
{
cout<<"YES";
return 0;
}
}
}
cout<<"NO";
return 0;
}
总结
这题原来想用二维数组,但发现前后两个没有办法拆开用,且个人能力无法实现