每日牛客一解

16 篇文章 0 订阅

链接:登录—专业IT笔试面试备考平台_牛客网
来源:牛客网
 

题目描述

在中国象棋中正所谓新手玩车,熟手玩炮,老手玩马,由此可见象棋中炮的地位还是比较高的。

给定一个n×m的棋盘,全部摆满炮,我们视所有炮都不属于同一阵营,他们之间可以相互攻击但不能不进行攻击直接移动。请问经历若干次攻击,直到不能攻击后,最少能剩余多少个炮。

输入描述:

 

第一行一个正整数T,表示数据组数

对于每组数据,输入两个正整数n和m

输出描述:

 

对于每组数据,输出最少能剩余多少个炮。

示例1

输入

2 1 2 2 3

输出

2
4
#include <iostream>

using namespace std;
int main(){
    int n;
    cin >> n;//输入n表示几组
    int a,b;//先定义在外边,for循环就可以不断赋值运算
    for (int i = 1;i<=n;i++){
        cin >> a >> b;//将定义的a,b,输入
        if (a >= 2 && b >= 2){
            cout << 4;//都大于2时
        }
        else if(a < 2 && b >= 2){
            cout << 2;//其中一个小于2
        }
        else if(a >= 2 && b < 2){
            cout << 2;//其中一个小于2
        }
        else if(a < 2 && b < 2){
            cout << 1;//都小于2
        }
    }
    return 0;
}

可以怎么想:无论有多少横多少列(都大于或等于2),可以在纸上演算一遍,很简单的,结果只剩下2 横*2列的炮。而其中一个小于2,另一个大于或等于2,则结果为2。若都为1,则结果为1。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值