Естественные науки

Логическая задача "Шахматная Доска"

Шахматная доска состоит из n × m клеток, покрашенных в черный и белый цвет в

«шахматном» порядке. При этом клетка в левом нижнем углу доски покрашена в черный

цвет. Определите, сколько всего на доске черных клеток.

Программа получает на вход два числа n и m, записанных в отдельных строках. Все

числа — натуральные, не превосходящие 30 000.

Программа должна вывести одно целое число — количество черных клеток на доске.
Какая программа? Задача в уме решается .
Если хотя бы одно из чисел m, n - чётное, то m*n/2

Если оба числа m и n - нечётные, то ( m*n + 1 )/ 2
АМ
Андрей Макаров
56 707
Лучший ответ
пусть n - клетки по вертикали
тогда m - клетки по горизонтали

count = (n*(m - 1) / 2) + (n / 2) + (n % 2);
#include <iostream>

using namespace std;

int main()
{

int n, m;
cin >> n >> m;

int t;
t = n * m;

int a, b, r;

r = t % 2;

b = (t + r) / 2;

cout << b << endl;
return 0;
}
#include <iostream>
using namespace std;
int main()
{
int n, m;
cin >> n >> m;
int t;
t = n * m;
int a, b, r;
r = t % 2;
b = (t + r) / 2;
cout << b << endl;
return 0;
}
пуст н одно
пусть д лругое и вот так решай
На каждой странице книги напечатано ровно k строк: на первой странице находятся строки с 1 по k, на второй — c k+1 по 2k и т. д. Определите, на какой странице находится строка номер n и какой по счёту будет эта строка на странице.

Даны натуральные числа k и n, каждое в отдельной строке. Программа должна считать их и вывести два числа: номер страницы и номер строки на странице.
#include <iostream>
using namespace std;
int main()
{
int n, m, p, o;
cin >> n >> m;
p = n * m + 1;
o = p % 2;
p = (p - o) / 2;
cout << p << endl;
return 0;
}
n=int(input())
m=int(input())
k=m*n+1
print(k//2)
#include <iostream>

using namespace std;

int main(){
int a,b,n,m;
cin >> n >> m;
a=m*n+1;
b=a/2;
cout << b << endl;
return 0;
}
Abdurauf Sobirov
Abdurauf Sobirov
103