洛谷:B2100 同行列对角线的格

 

凌晨四点醒来,发现海棠未眠。如果一朵花很美,那么有时我会不由自主地想到:“要活下去!”

                               做难题好累,于是有了简单题。

                                                                                                 -----我

 

#include<stdio.h>
int main(){
    int n,a,b;
    scanf("%d %d %d",&n,&a,&b);
    
    int i,j;
    for(j=1;j<=n;j++){
        //同一行上格子的位置
        printf("(%d,%d) ",a,j);
    }
    printf("\n");
    
    for(i=1;i<=n;i++){
        //同一列上格子的位置
        printf("(%d,%d) ",i,b);
    }
    printf("\n");
    
    for(i=1;i<=n;i++){
        //左上到右下对角线上的格子的位置
        for(j=1;j<=n;j++){
            if(i-j==a-b){
                printf("(%d,%d) ",i,j);
            }
        }
    }
    printf("\n");
    
    for(i=n;i>=1;i--){
        //左下到右上对角线上的格子的位置
        for(j=1;j<=n;j++){
            if(i+j==b+a){
                printf("(%d,%d) ",i,j);
            }
        }
    }
    return 0;
}

前两行就不多说什么了,让我们把注意都放在对角线上。

左上到右下对角线上的格子的位置:

这个符合要求的点的横坐标减去纵坐标应该等于输入的点的横坐标减去纵坐标【五颗星】

所以根据这个规律可以用二重循环筛选出合适的数进行输出。

左下到右上对角线上的格子的位置:

这个符合要求的点的横坐标加上纵坐标应该等于输入的点的横坐标加上纵坐标【*****】

注意:由于是从左下开始,所以 i 变量要从n减到1。

  • 6
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值