1459B - Move and Turn
// 思路
1.如果n是偶数,说明y方向要走 n / 2 步, x 方向要走 n / 2 步。
y方向 走 n / 2步,有n /2 + 1种可能的坐标:
向上走 n / 2步,向下走 0 步
向上走 n / 2 - 1步,向下走 1 步
...
向下走 0 步,向上走 n / 2 步。
x方向同理
总的不同坐标数就是: (n / 2 + 1) * (n / 2 + 1) 种
2.如果n是奇数,说明x方向要走 n / 2 步,y方向要走 n / 2 + 1步
或 x 方向要走 n / 2 + 1 步,y方向走 n / 2 步。
总的方案数就是: 2 * (n / 2 + 1) * (n / 2 + 1 + 1) 种。
#include<iostream>
using namespace std;
int main()
{
int n;
cin >> n;
if(n & 1) cout << 2 * (n / 2 + 1) * (n / 2 + 2) << endl;
else cout << (n / 2 + 1) * (n / 2 + 1) << endl;
}