2019 百度之星初赛第一场 Seq

题目名称:Seq

题目链接:Seq

Problem Description

度度熊有一个递推式 a n a_n an=( ∑ i = 1 n − 1 \sum_{i=1}^{n-1} i=1n1= a i a_i ai∗i)%n
其中 a 1 = 1 a_1=1 a1=1 。现给出 n,需要求 a n a_n an

Input

第一行输入一个整数 T,代表 T (1≤T≤100000) 组数据。
接下 T 行,每行一个数字 n (1≤n≤ 1 0 12 10^{12} 1012)。

Output

输出 T 行,每行一个整数表示答案

Sample Input

5
1
2
3
4
5

Sample Output

1
1
0
3
0

解题思路

这种题就是找规律的问题,先打印出来几千行数据,发现如下规律
在这里插入图片描述
例如
1 5 9 13
1 4 7 10
0 1 2 3
3 6 9 12
0 1 2 3
3 6 9 12
规律如上,即可编写代码

完整代码

#include
#include
#include
using namespace std;
#define N 100010
typedef long long ll;
int  t;
ll n;
ll a[N];

int main()
{
	a[1]=1;
	a[2]=1;
	a[3]=0;
	a[4]=3;
	a[5]=0;
	a[6]=3;
	
	cin>>t;
	while(t--){
		cin>>n;
		switch(n%6){
			case 1:cout<

你可能感兴趣的:(数学,算法竞赛)