1.九九乘法表

package main

import "fmt"

func main() {
    for i := 1; i <= 9; i++ {
        for j := 1; j <= i; j++ {
            fmt.Printf("%d * %d = %d\t", j, i, j*i)
        }
        fmt.Println()
    }
}

2.求100~999内的水仙花数?(水仙花数也被称为超完全数字不变数、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数,水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身。例如:1^3 + 5^3+ 3^3 = 153)

package main

import (
    "fmt"
    "math"
)

func main() {
    for num := 100; num <= 999; num++ {
        var i = num / 100   //百位
        var j = num / 10 % 10   //十位
        var k = num % 10    //个位
        if math.Pow(float64(i), 3)+math.Pow(float64(j), 3)+math.Pow(float64(k), 3) == float64(num) {
            fmt.Println(num)
        }
    }
}

3.打印等腰三角形

package main

import "fmt"

func main() {
    var line int = 10 //行数
    for i := 0; i < line; i++ {
        for j := 0; j < line-i-1; j++ {
            fmt.Print(" ")
        }
        for k := 0; k < i*2+1; k++ {
            fmt.Print("*")
        }
        fmt.Println()
    }
}

4.斐波那契数列(Fibonacci sequence),又称黄金分割数列、指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列以如下被以递推的方法定义:F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>=3,n∈N*)

package main

import "fmt"

const NUM = 10 //多少位

func fibonacci(n int) int {
    if n < 2 {
        return n
    }
    return fibonacci(n-2) + fibonacci(n-1)
}

func main() {
    var i int
    for i = 0; i < NUM; i++ {
        fmt.Printf("%d\t", fibonacci(i))
    }
}

5.阶乘。一个正整数的阶乘(factorial)是所有小于及等于该数的正整数的积,并且0的阶乘为1。自然数n的阶乘写作n!

package main

import "fmt"

func Factorial(n uint64) (result uint64) {
    if (n > 0) {
        result = n * Factorial(n-1)
        return result
    }
    return 1
}

func main() {
    var i int = 5
    fmt.Printf("%d 的阶乘是 %d\n", i, Factorial(uint64(i)))
}

6.统计输入字符个数

package main

import "fmt"

func main() {
    var str string
    fmt.Scan(&str)
    slice := []byte(str)
    m := make(map[byte]int)
    for i := 0; i < len(slice); i++ {
        m[slice]++
    }
    for k, v := range m {
        fmt.Printf("%c:%d\n", k, v)
    }
}

7.百钱百鸡? (我国古代数学家张丘建在《算经》一书中提出的数学问题:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?)

package main

import (
    "fmt"
)

func main() {
    //共买100只,所以cock(鸡翁)最多20只,hen(鸡母)最多33只,chicken(鸡雏)最多100只
    for cock := 0; cock < 20; cock++ {
        for hen := 0; hen < 33; hen++ {
            for chicken := 0; chicken <= 100; chicken += 3 {
                if (5*cock+3*hen+chicken/3 == 100 && cock+hen+chicken == 100) {
                    fmt.Printf("鸡翁%d只,鸡母%d只,小鸡%d只\n", cock, hen, chicken)
                }
            }
        }
    }
}