B2100

· · 题解

题目分析

第一种情况:同行,那么我们要输出与它同行的所有点,即它的横坐标与所有的纵坐标搭配;
第二种情况:同列,那么我们要输出与它同列的所有点,即所有的横坐标与它的纵坐标搭配;
第三种情况:左上至右下同一对角线,那么此时,这个符合要求的点的横坐标减去纵坐标应该等于输入的点的横坐标减去纵坐标,所以我们在二重循环内每次做一个判断,满足要求就输出;
第四种情况:右上至左下同一对角线,那么此时,这个符合要求的点的横坐标加上纵坐标应该等于输入的点的横坐标加上纵坐标,所以我们同样在二重循环内每次做一个判断,满足要求就输出。

代码实现

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n,x,y;
    cin>>n>>x>>y;
    for(int i=1;i<=n;i++){
        cout<<"("<<x<<","<<i<<")"<<" ";     
    }
    cout<<endl;
    for(int i=1;i<=n;i++){
        cout<<"("<<i<<","<<y<<")"<<" ";     
    }
    cout<<endl;
    for(int i=1;i<=n;i++){
        for(int j=1;j<=n;j++){
            if(i-j==x-y){
                cout<<"("<<i<<","<<j<<")"<<" "; 
            }
        }
    }
    cout<<endl;
    for(int i=n;i>=1;i--){
        for(int j=1;j<=n;j++){
            if(i+j==x+y){
                cout<<"("<<i<<","<<j<<")"<<" "; 
            }
        }
    }
    cout<<endl;
    return 0;
}