项目描述
就是输入一个abc的字符串,然后在输入偏移量,然后,就会给出一个结果,一个偏移的结果。
以上前三个是我输入的
项目代码
代码如下
package main
//这个函数的作用,就是输入一个abc的字符串,然后在输入偏移量,然后,就会给出一个结果,一个偏移的结果。
import (
"fmt"
)
func main() {
var length, delta int
var input string
fmt.Scanf("%d\n", &length)
fmt.Scanf("%s\n", &input)
fmt.Scanf("%d\n", &delta)
var ret []rune
for _, ch := range input {
ret = append(ret, cipher(ch, delta))
}
fmt.Println(string(ret))
}
func cipher(r rune, delta int) rune {
if r >= 'A' && r <= 'Z' {
return rotate(r, 'A', delta)
}
if r >= 'a' && r <= 'z' {
return rotate(r, 'a', delta)
}
return r
}
//rune是unicode字符类型,所以打印的时候,直接打印,会是数字,而需要包裹层string
func rotate(r rune, base, delta int) rune {
tmp := int(r) - base
tmp = (tmp + delta) % 26
fmt.Println(string(rune(tmp+base)))
return rune(tmp + base)
}
//
// func rotate(s rune, delta int, key []rune) rune {
// idx := strings.IndexRune(string(key), s)
// if idx < 0 {
// panic("idx < 0")
// }
// idx = (idx + delta) % len(key)
// return key[idx]
// }
网友评论