http://acm.hdu.edu.cn/showproblem.php?pid=6130
给出一个Kolakoski 数列,该数列中只含有1和2,且定义连续相同的数字为一组数,满足第n项的值等于第n组中数字的个数
其实是道模拟题,根据题意打个10000000的表就好。
#include<iostream>
using namespace std;int a[11111111];
int main(){
a[1]=1;
a[2]=2;
int js=2;
int zs=2;
for(int i=3;i<=10000099;i++)
{
if(a[zs]==2&&js==a[i-1])
{
a[i]=js;
js=3-js;
zs++;
}
else if(a[zs]==2&&js!=a[i-1])
{
a[i]=js;
}
else if(a[zs]==1)
{
a[i]=js;
js=3-js;
zs++;
}
}
int n;
int t;
cin>>t;
while(t--){cin>>n;
cout<<a[n]<<endl;
}
return 0;
}