2019-08-187-8 找到第N个字符

小黑黑上课的时候走神儿,鬼使神差的就想到了这么一个问题,假如:

S​1​​=a

S​2​​=ab

S​3​​=abc

S​4​​=abcd

......

S​26​​=abcdefghijklmnopqrstuvwxyz

S​27​​=abcdefghijklmnopqrstuvwxyza

S​28​​=abcdefghijklmnopqrstuvwxyzab

......

S​52​​=abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz

要是把所有的串依次连接起来,不就得到了

S=aababcabcdabcdeabcdef......

现在小黑黑想知道这个串里的第N个字母是多少,你能告诉他嘛?

输入格式:

输入首先是一个数字 K,代表有K次询问.

接下来的 K 行每行有一个整数 N.

对 K 保证有(1≤K≤1000)。

对 N 保证有(1≤N≤10000)。

输出格式:

对于每次询问,输出串中第个 N 位置对应的字母。

输入样例:

6

1

2

3

4

5

10

输出样例:

a

a

b

a

b

d

作者: 小黑

单位: 临沂大学

时间限制: 1000 ms

内存限制: 256 MB

#include

#define int long long

using namespace std;

char q[26]={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};

signed main()

{

    int n,cnt=0;

    cin>>n;

  char a[1000010];

  for(int i=1;i<=1000;i++)

  {

      for(int j=1;j<=i;j++)

      {

            if(j%26==0)

            {

                a[++cnt]=q[25];

            }

            else

            {

                a[++cnt]=q[j%26]-1;

            }

      }

  }

  for(int i=1;i<=n;i++)

  {

        int k;

        cin>>k;

        cout<

  }

    return 0;

}

你可能感兴趣的:(2019-08-187-8 找到第N个字符)