開発環境
- macOS Catalina - Apple (OS)
- Emacs (Text Editor)
- Windows 10 Pro (OS)
- Visual Studio Code (Text Editor)
- Go (プログラミング言語)
入門Goプログラミング (Nathan Youngman(著)、Roger Peppé(著)、吉川 邦夫(監修, 翻訳)、翔泳社)のUNIT 2(型)、LESSON 11(チャレンジ: ヴィジュネル暗号)の練習問題2の解答を求めてみる。
コード
package main
import (
"fmt"
"strings"
)
func main() {
plainText := "your message goes here"
replacedPlainText := strings.Replace(plainText, " ", "", -1)
upperPlainText := strings.ToUpper(replacedPlainText)
keyword := "GOLANG"
replacedKeyword := strings.Replace(keyword, " ", "", -1)
upperKeyword := strings.ToUpper(replacedKeyword)
repeatedKeyword := strings.Repeat(upperKeyword, len(upperPlainText)/len(upperKeyword)+1)
message := ""
for i, c := range upperPlainText {
t := c + ([]rune(repeatedKeyword)[i] - 'A')
if t > 'Z' {
t -= 26
}
message += string(t)
}
fmt.Println(message)
}
入出力結果(Zsh、PowerShell、Terminal)
% go run ./cipher.go
ECFRZKYGLGRMUSDHRXK
%
0 コメント:
コメントを投稿