Input
Output
Samples
| input | output |
|---|---|
4 3 | 4 |
3 3 | 2 |
Hint
Reference - The blog below explaine in detail, but I seem like not quite get it that much:
http://flickeringtubelight.net/blog/2006/08/a-diagonal-through-a-rectangular-grid-of-squares/
But anyway, it's a good explanation. And it should be benefit to read it, maybe you can come up with your own way to understand this approach.
This is a problem that can be approach by many ways. I want to post it because it is very mathematics-related.
I , too, use that formula to solve it.
My suggestion is: if you really have a hard time to deduct that formula, just check the small examples, like n = 2, m = 3, and n = 5, m = 4 and so on.
Below is my C++ solution:
#include <iostream>
using namespace std;
int GCDcityBlocks(int n, int m)
{
while (m)
{
int a = n % m;
n = m;
m = a;
}
return n;
}
void CityBlocks1139()
{
int n = 0, m = 0;
cin>>n>>m;
n--, m--;
int k = GCDcityBlocks(n, m);
int ans = n/k + m/k - 1;
cout<<ans * k;
}
本文提供了一种方法来计算直升机从城市最西南角到最东北角飞行过的方块数量,涉及数学原理及编程实现。
862

被折叠的 条评论
为什么被折叠?



