【Go语言入门100题】050 倒数第N个字符串 (15 分) Go语言|Golang

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

L1-050 倒数第N个字符串 (15 分) Go语言|Golang

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


输入格式:

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


输出格式:

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


输入样例1:

3 7417


结尾无空行


输出样例1:

pat


结尾无空行


思路:

这题看上去很唬人,其实只是一个26进值的转化而已。

首先知道总数是多少,才能对各个进行位置进行求余操作。

代码如下:

package main
import (
  "fmt"
  "math"
)
func main() {
  var L,N int
  _,_ = fmt.Scan(&L,&N)
  a:= make([]rune,7)
  sum := math.Pow(26,float64(L))  //求出总数
  tmp := int(sum)-N  // 然后计算出一共要多少位,因为是倒数第N位,减去就是这个了正数第几位了
  // 然后用这个数对26不断求余,除整就够了。
  for i := L - 1; i >= 0; i-- {
    a[i] = 'a'+ rune(tmp%26)  
    tmp /= 26
  }
  for i := 0; i < L; i++ {
    fmt.Printf("%s",string(a[i]))
  }
}
相关文章
|
2月前
|
存储 Go 索引
go语言中遍历字符串
go语言中遍历字符串
61 5
|
1月前
|
Go
go语言for 遍历字符串
go语言for 遍历字符串
32 8
|
2月前
|
JSON Go 开发者
go-carbon v2.5.0 发布,轻量级、语义化、对开发者友好的 golang 时间处理库
carbon 是一个轻量级、语义化、对开发者友好的 Golang 时间处理库,提供了对时间穿越、时间差值、时间极值、时间判断、星座、星座、农历、儒略日 / 简化儒略日、波斯历 / 伊朗历的支持。
44 4
|
2月前
|
Go 索引
go语言遍历字符串
go语言遍历字符串
35 3
|
2月前
|
存储 设计模式 安全
Go语言中的并发编程:从入门到精通###
本文深入探讨了Go语言中并发编程的核心概念与实践技巧,旨在帮助读者从理论到实战全面掌握Go的并发机制。不同于传统的技术文章摘要,本部分将通过一系列生动的案例和代码示例,直观展示Go语言如何优雅地处理并发任务,提升程序性能与响应速度。无论你是Go语言初学者还是有一定经验的开发者,都能在本文中找到实用的知识与灵感。 ###
|
2月前
|
存储 Cloud Native Shell
go库介绍:Golang中的Viper库
Viper 是 Golang 中的一个强大配置管理库,支持环境变量、命令行参数、远程配置等多种配置来源。本文详细介绍了 Viper 的核心特点、应用场景及使用方法,并通过示例展示了其强大功能。无论是简单的 CLI 工具还是复杂的分布式系统,Viper 都能提供优雅的配置管理方案。
|
2月前
|
Unix Linux Go
go进阶编程:Golang中的文件与文件夹操作指南
本文详细介绍了Golang中文件与文件夹的基本操作,包括读取、写入、创建、删除和遍历等。通过示例代码展示了如何使用`os`和`io/ioutil`包进行文件操作,并强调了错误处理、权限控制和路径问题的重要性。适合初学者和有经验的开发者参考。
|
2月前
|
Serverless Go
Go语言中的并发编程:从入门到精通
本文将深入探讨Go语言中并发编程的核心概念和实践,包括goroutine、channel以及sync包等。通过实例演示如何利用这些工具实现高效的并发处理,同时避免常见的陷阱和错误。
|
3月前
|
安全 Go 开发者
破译Go语言中的并发模式:从入门到精通
在这篇技术性文章中,我们将跳过常规的摘要模式,直接带你进入Go语言的并发世界。你将不会看到枯燥的介绍,而是一段代码的旅程,从Go的并发基础构建块(goroutine和channel)开始,到高级模式的实践应用,我们共同探索如何高效地使用Go来处理并发任务。准备好,让Go带你飞。