64,637
社区成员
发帖
与我相关
我的任务
分享
#include<cstdio>
#define Maxn int(1e7+1)
#pragma warning(disable:4996)
using namespace std;
int ka[Maxn];
void init()
{
int k=3;
ka[1] = 1;
ka[2] = 2;
ka[3] = 2;
for (int i = 3; i <= Maxn;)
{
if (ka[k] == 1) {
ka[i+1] = (ka[i] == 1) ? 2 : 1;
i++;
}
else {
ka[i+1] = ka[i+2] = (ka[i] == 1) ? 2 : 1;
i += 2;
}
k++;
}
}
int T;
int n;
int main()
{
init();
scanf("%d", &T);
// freopen("output.txt", "w", stdout);
while (T--) {
scanf("%d", &n);
if(T)
printf("%d\n", ka[n]);
else
printf("%d", ka[n]);
}
}
注意前自增和后自增都会有副作用,建议你的init函数里的逻辑改一下。