题目描述

筱玛是一个快乐的男孩子。

筱玛在一次数学考试中看到了这样一道题:

求有多少个长度为 n 的不同的排列 A,满足对于任意的 i 均有 A[A[i]] + i = n + 1。

聪明的筱玛当然一眼就秒掉了这道题,现在他想来考考你。

 

输入描述:

一行一个整数 n。

输出描述:

一行一个整数,表示模 998244353 意义下的答案。

示例1

输入

复制

4

输出

复制

2

说明

3 1 4 2
2 4 1 3

只有以上这两个合法的排列 A。

备注:

1 ≤ n ≤ 106

 

打表 找规律 ;

f[0] = 1 ;   f[5] = 2  ;   f[10] = 0 ; 

 

 

f[1] = 1 ;  f[6] = 0 ;   f[11] = 0 ; 

 

f[2] = 0 ; f[7] = 0 ;  f[12]= 120 

f[3] = 0 ; f[8 ] = 12 ;  f[13] = 120 

f[4] = 2 ;  f[9] = 12 ; 

 

f[i]  = f[i-4]*(i-2 );

#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std ;
const int MAX = 1e6+10;
const int mod=998244353;
typedef long long LL ;
LL f[MAX] ;
int main()
{
f[0]=f[1]=1;
for(int i=4;i<=1e6+10;i++)
f[i]=f[i-4]*(i-2)%mod;
int n;
cin >> n ;
cout<<f[n]<<endl;



return 0 ;
}