链接:https://ac.nowcoder.com/acm/contest/19306/1046
来源:牛客网
故输出为 aaczzzqpq
来源:牛客网
时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 131072K,其他语言262144K
64bit IO Format: %lld
空间限制:C/C++ 131072K,其他语言262144K
64bit IO Format: %lld
题目描述
现在定义一种编码规则:对于长度为3的字符串(均由小写字母组成),首先按照字典序进行排序,即aaa,aab,aac,…,zzz,
将这些字符串按照顺序依次从00001至17575编码(前缀0不可省略),即aaa=00000,aab=00001,aac=00002,…,zzz=17575。
现在给出一串数字,请你通过计算输出这串数字对应的原字符串。(输入保证该数字长度为5的倍数)
例如输入000021757511222,每五位编号对应于一个字符串
编号00002对应字符串 aac
编号17575对应字符串 zzz
编号11222对应字符串 qpq
输入描述:
输入第一行包含一个整数T,代表测试案例个数。(0 < T ≤10) 接下来每个测试案例包括两行,第一行为一个整数length(0<length<=100),代表数字串的长度,第二行为长度为length的数字串。
输出描述:
输出数字串对应的原字符串。
示例1
输入
2 10 0000000001 15 000021757511222
输出
aaaaab aaczzzqpq
#include<iostream> #include<cstring> using namespace std; int main() { int t; cin>>t; while(t--) { int n; cin>>n; for(int i=1;i<=n/5;i++) { int ans=0; for(int j=1;j<=5;j++) { char c; cin>>c; ans=ans*10+c-'0'; } char a[3]={0}; for(int j=2;j>=0;j--) { a[j]=char(97+ans%26); ans=ans/26; } for(int j=0;j<3;j++) cout<<a[j]; } cout<<endl; } return 0; }