pta 天梯赛 L1-050 倒数第N个字符串 (15 分)

给定一个完全由小写英文字母组成的字符串等差递增序列,该序列中的每个字符串的长度固定为 L,从 L 个 a 开始,以 1 为步长递增。例如当 L 为 3 时,序列为 { aaa, aab, aac, ..., aaz, aba, abb, ..., abz, ..., zzz }。这个序列的倒数第27个字符串就是 zyz。对于任意给定的 L,本题要求你给出对应序列倒数第 N 个字符串。

输入格式:

输入在一行中给出两个正整数 L(2 ≤ L ≤ 6)和 N(≤10?5??)。

输出格式:

在一行中输出对应序列倒数第 N 个字符串。题目保证这个字符串是存在的。

输入样例:

3 7417

输出样例:

pat


思路:找规律,像十进制一样,要求得每一位,先求%10,然后/10;由于本题找的是倒数的,可以先把它转化为正数的,总数为pow(26,l);正数的顺序=总数-倒数;求得正数的顺序后就可以直接用a相加,即a=0

代码如下:
 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 #define ll long long
 4
 5 int main()
 6 {
 7     int l,n,i;
 8     cin >> l >> n;
 9     int m = pow(26,l) - n;//转换为正数从0开始
10     char c[6];
11     i = 0;
12     while(l--)
13     {
14         c[i++] = ‘a‘ + m % 26;
15         m /= 26;
16     }
17     for(int j = i - 1;j >= 0;j--)
18     cout << c[j];
19     cout << endl;
20     return 0;
21 }

原文地址:https://www.cnblogs.com/lu1nacy/p/10055263.html

时间: 2024-08-28 12:59:15

pta 天梯赛 L1-050 倒数第N个字符串 (15 分)的相关文章

L1-050 倒数第N个字符串 (15分)

L1-050 倒数第N个字符串 (15分) 给定一个完全由小写英文字母组成的字符串等差递增序列,该序列中的每个字符串的长度固定为 L,从 L 个 a 开始,以 1 为步长递增.例如当 L 为 3 时,序列为 { aaa, aab, aac, ..., aaz, aba, abb, ..., abz, ..., zzz }.这个序列的倒数第27个字符串就是 zyz.对于任意给定的 L,本题要求你给出对应序列倒数第 N 个字符串. 输入格式: 输入在一行中给出两个正整数 L(2 ≤ L ≤ 6)和

『ACM C++』 PTA 天梯赛练习集L1 | 001-006

应师兄要求,在打三月底天梯赛之前要把PTA上面的练习集刷完,所以后面的时间就献给PTA啦~ 后面每天刷的题都会把答案代码贡献出来,如果有好的思路想法也会分享一下~ 欢迎大佬提供更好的高效率算法鸭~ ------------------------------------------------L1-001---------------------------------------------------------- 这道超级简单的题目没有任何输入. 你只需要在一行中输出著名短句“Hello

『ACM C++』 PTA 天梯赛练习集L1 | 007-0011

真的是忙头晕了,学业.ACM打题.班级活动.自学新东西,哇这充实的大学~ ------------------------------------------------L1-007---------------------------------------------------------- 念数字 输入一个整数,输出每个数字对应的拼音.当整数为负数时,先输出fu字.十个数字对应的拼音如下: 0: ling 1: yi 2: er 3: san 4: si 5: wu 6: liu 7:

『ACM C++』 PTA 天梯赛练习集L1 | 016-017

今天开了两个大会,时间都给占掉了,就刷了两道题~ 明天加油!!! ------------------------------------------------L1-016---------------------------------------------------------- 查验身份证 一个合法的身份证号码由17位地区.日期编号和顺序编号加1位校验码组成.校验码的计算规则如下: 首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2,1,6,3,7,9,10,5,

『ACM C++』 PTA 天梯赛练习集L1 | 018-020

终于一周有这么一天能够安静下来好好学习打打题,还是很美滋滋的哈哈~加油加油~ ------------------------------------------------L1-018---------------------------------------------------------- 大笨钟 微博上有个自称“大笨钟V”的家伙,每天敲钟催促码农们爱惜身体早点睡觉.不过由于笨钟自己作息也不是很规律,所以敲钟并不定时.一般敲钟的点数是根据敲钟时间而定的,如果正好在某个整点敲,那么“当

PTA 天梯赛 L2_021

考察自定义结构体的排序 import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.Arrays; import java.util.Comparator; import java.util.HashSet; import java.util.Set; public class Main { public static void main(String[] args) throws Excep

PTA天梯赛L2

L2-001 紧急救援 题意:就是给你一张n<500的图:让你求最短路径,最短路条数,以及路径: 做法,先用dijkstra求最短路,然后dfs找最短路条数,以及点权的最大值: 一般dfs不就可以解决这个问题吗,像n皇后求次数,注意回溯即可: 那如何dfs确定这条路是最短路径呢?贪心思想,枚举每一个邻居,如果满足   dis[y.v]==dis[x]+y.w 说明当前邻居 通过这个点可以一直是最短路径,这样dfs下去,如果碰到d就return掉: 主要是没有想到用dfs求最短路径条数,然后注意回

天梯赛练习 L3-010 是否完全二叉搜索树 (30分) 数组建树模拟

题目分析: 本题的要求是将n个数依次插入一个空的二叉搜索树(左大右小,且没有重复数字),最后需要输出其层次遍历以及判断是否是完全二叉搜索树,通过观察我们发现, 如果这个树是用数组建立的,那么最后输出的时候只要按编号从大到小就可以输出层序遍历了,此外,对于是否完全二叉树的判断也可以通过直接判断数组对应的值是否为0即可,需要注意的是由于可能出现极端的情况,这里20个数字可能会占用2^20-1的空间,所以数组需要开大一些 由数组建树代码: 1 #include<iostream> 2 #includ

PTA 7-7 求整数的位数及各位数字之和 (15分)

#include<stdio.h> int main() { unsigned long int a; int b, c,d; int sum = 0; int count = 1; scanf("%ld", &a); c = a; while (c=c/10) { count++; } b = count; while(count--) { d = a % 10; sum += d; a = a / 10; } printf("%d %d",