結果
問題 | No.18 うーさー暗号 |
ユーザー | yo-kondo |
提出日時 | 2018-02-27 21:46:44 |
言語 | Go (1.23.4) |
結果 |
AC
|
実行時間 | 2 ms / 5,000 ms |
コード長 | 944 bytes |
コンパイル時間 | 14,702 ms |
コンパイル使用メモリ | 239,780 KB |
実行使用メモリ | 6,820 KB |
最終ジャッジ日時 | 2024-11-30 07:27:44 |
合計ジャッジ時間 | 15,523 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 13 |
ソースコード
package main import ( "bufio" "fmt" "os" ) func main() { in := bufio.NewScanner(os.Stdin) // 暗号化文字列 in.Scan() s := in.Text() fmt.Println(decode(s)) } // 復号化する。 func decode(s string) string { dec := "" // 文字列を1文字ずつループ // 文字列をループするとbyte(10進数)になる for i, v := range s { // iの数だけ減算(iは0から始まるため+1) as := int(v) - (i + 1) // A以前の文字になった場合はZに進めるため、26を足す // 1回だけだとA~Zにならない可能性があるため、A~Zになるまでループする for { if as < 65 { as += 26 } else { break } } for { if as < 65 { as += 26 } else { break } } // Z以降の文字になった場合はAに戻すため、26を引く if as > 90 { as -= 26 } // 文字列に変換 ch := string(as) dec += ch } return dec }