SDNU-1543.Happy Salted Fish Every Day

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;
}

猜你喜欢

转载自blog.csdn.net/weixin_43892298/article/details/86526914