列表

详情


NC25343. Find the Nth Character

描述

今天在给

的同学们上程序算法课的时候出了一道找规律的题目,题目表述如下
假设:
现在要求上课的同学们把所有的串依次连接起来,于是得到:

那么你能告诉串中的第个字母是多少吗?




输入描述

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

接下来的行每行有一个整数


输出描述

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

示例1

输入:

6
1
2
3
4
5
10

输出:

a
a
b
a
b
d

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

C++14(g++5.4) 解法, 执行用时: 6ms, 内存消耗: 468K, 提交时间: 2019-04-25 22:19:05

#include<bits/stdc++.h>

using namespace std;
int main()
{
	int k,n;
	cin>>k;
	while(k--)
	{
		cin>>n;
		for(int i=1;n>i;i++)
			n-=i;
		n=n%26;
		if(n==0)
			n=26;
		printf("%c\n",n+'a'-1);
	}
	return 0;
}

Python3(3.5.2) 解法, 执行用时: 91ms, 内存消耗: 3448K, 提交时间: 2019-05-03 15:52:58

input();
while True:
    try:
        n=int(input());
        a=1;
        ans=0;
        while n>a:
            n-=a;
            a+=1;
        print(chr((n-1)%26+1+96));
    except:
         break;

C++11(clang++ 3.9) 解法, 执行用时: 4ms, 内存消耗: 368K, 提交时间: 2020-02-17 17:02:11

#include<stdio.h>
int main()
{
	int k,n;
	scanf("%d",&k);
	while(k--)
	{
		scanf("%d",&n);
		for(int i=1;i<n;i++)
		n-=i;
		n=(n-1)%26;
		printf("%c\n",n+'a');
	}
}

上一题