2019年3月19日火曜日

開発環境

プログラミング言語Go (ADDISON-WESLEY PROFESSIONAL COMPUTING SERIES) (Alan A.A. Donovan(著)、Brian W. Kernighan(著)、柴田 芳樹(翻訳)、丸善出版)の第4章(コンポジット型)、4.2(スライス)、4.2.2(スライス内での技法)、練習問題4.4の解答を求めてみる。

コード

package main

import "fmt"

func main() {
 for i := 0; i < 13; i++ {
  s := []int{0, 1, 2, 3, 4, 5}
  fmt.Printf("%vつだけ左へ回転させる。\n", i)
  fmt.Println(s)
  s = rotate(s, i)
  fmt.Println(s)
 }
}

func rotate(s []int, n int) []int {
 n %= len(s)
 for i := 0; i < n; i++ {
  s = append(s[1:], s[0])
 }
 return s
}

入出力結果(cmd(コマンドプロンプト)、Terminal)

C:\Users\...>go run sample4.go 
0つだけ左へ回転させる。
[0 1 2 3 4 5]
[0 1 2 3 4 5]
1つだけ左へ回転させる。
[0 1 2 3 4 5]
[1 2 3 4 5 0]
2つだけ左へ回転させる。
[0 1 2 3 4 5]
[2 3 4 5 0 1]
3つだけ左へ回転させる。
[0 1 2 3 4 5]
[3 4 5 0 1 2]
4つだけ左へ回転させる。
[0 1 2 3 4 5]
[4 5 0 1 2 3]
5つだけ左へ回転させる。
[0 1 2 3 4 5]
[5 0 1 2 3 4]
6つだけ左へ回転させる。
[0 1 2 3 4 5]
[0 1 2 3 4 5]
7つだけ左へ回転させる。
[0 1 2 3 4 5]
[1 2 3 4 5 0]
8つだけ左へ回転させる。
[0 1 2 3 4 5]
[2 3 4 5 0 1]
9つだけ左へ回転させる。
[0 1 2 3 4 5]
[3 4 5 0 1 2]
10つだけ左へ回転させる。
[0 1 2 3 4 5]
[4 5 0 1 2 3]
11つだけ左へ回転させる。
[0 1 2 3 4 5]
[5 0 1 2 3 4]
12つだけ左へ回転させる。
[0 1 2 3 4 5]
[0 1 2 3 4 5]

C:\Users\...>

0 コメント:

コメントを投稿