SDNU-1543.Happy Salted Fish Every Day
Description
Input
Output
Sample Input
Sample Output
题干是挺有意思的,令人欲罢不能的规律!
先看前10个—1 2 2 1 1 2 1 2 2 1—从第四个开始看,1 1(1的数量是前一个数(2)倍),从第三个数开始,决定了即将增加的数出现的次数,并且1和2循环着增加。
第三个数是2 ,所以后面增加了两个1;
第四个数是1,所以后面增加了一个2;
……
ac代码如下:
#include <iostream>
#include <algorithm>
#include <cstring>
#include <cmath>
#include <string>
#include <cstdio>
using namespace std;
#define N 10000005
int a[N];
int main()
{
int x,i,j=4,ii=3;
a[1]=x=1;
a[2]=a[3]=2;
while(j<=10000000)//用j来控制插入数组元素的数量
{
for (int i=0;i<a[ii];i++)//上面的规律
a[j++]=x;//j控制插入数组元素的数量
x=3-x;//循环出现1和2
ii++;
}
int m,mm;
cin>>m;
while(m--)
{
cin>>mm;
cout<<a[mm]<<endl;
}
return 0;
}