0507
LOGS
カプレカ数なるものを知る- 早速計算するプログラムを golang で AI に書かせてみる
 - 先にモジュールをインストールする必要があるので以下のコマンドを実行
 
> go mod download github.com/google/go-github/v32- できたらコードを書く
 - 以下は3桁のカプレカ数を手続き的に計算するコード
 
package main import ( "fmt" "sort" "strconv" ) func main() { for i := 100; i <= 999; i++ { if isCaprekarNumber(i) { fmt.Printf("%d is a Kaprekar number\n", i) } } } func isCaprekarNumber(n int) bool { str := strconv.Itoa(n) digits := make([]rune, len(str)) for i, c := range str { digits[i] = c } sort.Slice(digits, func(i, j int) bool { return digits[i] < digits[j] }) ascending := atoi(string(digits)) sort.Slice(digits, func(i, j int) bool { return digits[i] > digits[j] }) descending := atoi(string(digits)) diff := descending - ascending if diff == n { fmt.Printf("%d - %d = %d\n", descending, ascending, diff) } return n == diff } func atoi(s string) int { n, _ := strconv.Atoi(s) return n }実行してみた
954 - 459 = 495 495 is a Kaprekar numberよしよし.できている.
Tour of Go の続き
- 頭大文字はエクスポートされたもの.小文字はエクスポートされていない.
- e.g.
 math.Pi←◯math.pi←✕
 - 関数の書き方
 - 引数には型をつける(
変数名 型の書き方)func add(x int, y int) int { // こう書くこともできる // func add(x, y int) int { return x + y } fmtもインポートしないとだめなんだな- 関数のレスポンスの型の書き方
func swap(x, y string) (string, string) { return y, x } - 変数宣言は 
varで,後ろに型 
var c, python, java bool // 初期値も設定できる var i, j int = 1, 2 // 関数内なら := の代入文を用いて暗黙の型宣言ができる k := 3- 頭大文字はエクスポートされたもの.小文字はエクスポートされていない.
 中途半端だが,今日はここまで