Go 言語で「基礎プログラミング演習 I 〜100 本ノック中級編」を解いてみる-No.49「九九」

はじめに

「基礎プログラミング演習 I 〜100 本ノック中級編」を解いてみます。

取り扱う問題は以下のサイトを引用させていただきました。

検証環境

$ uname -moi
x86_64 unknown GNU/Linux

$ head -n 2 /etc/os-release
PRETTY_NAME="Debian GNU/Linux 10 (buster)"
NAME="Debian GNU/Linux"

$ go version | head -n 1
go version go1.16.3 linux/amd64

問題

No. 49 九九

九九の表を、2 重の繰り返しを使って表示するプログラムを作成せよ。2 重の繰り返しを使わず単に表示するだけではダメ。値の間はタブ(\t)を使って間をあけること。

# 【実行例】
$ ./knock49
1   2   3   4   5   6   7   8   9
2   4   6   8   10  12  14  16  18
3   6   9   12  15  18  21  24  27
4   8   12  16  20  24  28  32  36
5   10  15  20  25  30  35  40  45
6   12  18  24  30  36  42  48  54
7   14  21  28  35  42  49  56  63
8   16  24  32  40  48  56  64  72
9   18  27  36  45  54  63  72  81

回答

knock49.go

package main

import (
    "fmt"
    "strconv"
    "strings"
)

func main() {
    nums := make([]string, 9)

    for i := 0; i < 9; i++ {
        for j := 0; j < 9; j++ {
            nums[j] = strconv.Itoa((i + 1) * (j + 1))
        }

        fmt.Println(strings.Join(nums, "\t"))
    }
}

実行

$ go run knock49.go
1       2       3       4       5       6       7       8       9
2       4       6       8       10      12      14      16      18
3       6       9       12      15      18      21      24      27
4       8       12      16      20      24      28      32      36
5       10      15      20      25      30      35      40      45
6       12      18      24      30      36      42      48      54
7       14      21      28      35      42      49      56      63
8       16      24      32      40      48      56      64      72
9       18      27      36      45      54      63      72      81

ひとこと

やはり C/C++/Java/C# といった言語の流れを組んでいるようですね。タブ文字の出力が同じ方法で実現できました。

Posted by genzouw