题目大意:
输入MxN大小的矩形,已知多米诺骨牌大小为2x1(可以看做M行N列,多米诺牌大小占2行1列)。求能往矩形里放最多多米诺牌的数量是多少?
解题思路:
令a=M/2,a表示一列里可以放的多米诺牌数量;令sum=a*N,sum表示N列中放的多米诺牌的总数;如果是奇数行,则还需判断最后一行中可放入
多米诺牌的数量,将其加入sum即可求得最多米诺牌总数。
代码实现:
#include<iostream>
#include<stdlib.h>
#include<stdio.h>
#include<cmath>
#include<math.h>
#include<algorithm>
#include<string>
#include<string.h>
using namespace std;
int main() {
int N, M; //表示N行M列
int sum=0,a=0;
while (~scanf("%d%d", &N, &M)) {
a = N / 2;
//一列里可以放的塔罗牌数
sum = a * M;
// 乘上总列数
if (N % 2 == 1)
//如果奇数行
sum += M / 2;
//加上这一行中牌的数量
printf("%d\n", sum);
}
return 0;
}