Problem Description
This is Kolakosiki sequence:
1,2,2,1,1,2,1,2,2,1,2,2,1,1,2,1,1,2,2,1……
. This sequence consists of
1
and
2
, and its first term equals
1
. Besides, if you see adjacent and equal terms as one group, you will get
1,22,11,2,1,22,1,22,11,2,11,22,1……
. Count number of terms in every group, you will get the sequence itself. Now, the sequence can be uniquely determined. Please tell HazelFan its
n
th element.
Input
The first line contains a positive integer
T(1≤T≤5)
, denoting the number of test cases.
For each test case:
A single line contains a positive integer n(1≤n≤107) .
For each test case:
A single line contains a positive integer n(1≤n≤107) .
Output
For each test case:
A single line contains a nonnegative integer, denoting the answer.
A single line contains a nonnegative integer, denoting the answer.
Sample Input
2 1 2
Sample Output
1 2
分析:按照规律打表,直接输出即可。#include<bits/stdc++.h> using namespace std; int a[10000005]; int f[5]; int main() { int t,sum=1,k=2,z=2,n; cin>>t; a[1]=1;a[2]=2; for(long long i=3;i<=10000005;i++) { sum++; a[i]=z; if(sum==a[k]) { sum=0;k++; if(z==2) z=1; else z=2; } } while(t--) { cin>>n; cout<<a[n]<<endl; } }