結果
問題 | No.18 うーさー暗号 |
ユーザー | yo-kondo |
提出日時 | 2018-02-27 21:46:44 |
言語 | Go (1.22.1) |
結果 |
AC
|
実行時間 | 2 ms / 5,000 ms |
コード長 | 944 bytes |
コンパイル時間 | 13,307 ms |
コンパイル使用メモリ | 233,280 KB |
実行使用メモリ | 6,944 KB |
最終ジャッジ日時 | 2024-05-07 14:07:51 |
合計ジャッジ時間 | 14,019 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 2 ms
6,812 KB |
testcase_01 | AC | 1 ms
6,812 KB |
testcase_02 | AC | 1 ms
6,816 KB |
testcase_03 | AC | 1 ms
6,812 KB |
testcase_04 | AC | 1 ms
6,812 KB |
testcase_05 | AC | 1 ms
6,940 KB |
testcase_06 | AC | 1 ms
6,944 KB |
testcase_07 | AC | 1 ms
6,944 KB |
testcase_08 | AC | 2 ms
6,944 KB |
testcase_09 | AC | 1 ms
6,944 KB |
testcase_10 | AC | 1 ms
6,940 KB |
testcase_11 | AC | 1 ms
6,944 KB |
testcase_12 | AC | 1 ms
6,940 KB |
ソースコード
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 }