1. 程式人生 > >百錢買百雞

百錢買百雞

出現 \n 實現 如何 小數 價格 %d pack 幾何

我國古代數學家張丘建在《算經》一書中提出的數學問題:雞翁一值錢五,雞母一值錢三,雞雛三值錢一。百錢買百雞,問雞翁、雞母、雞雛各幾何?
用go語言如何實現?

方法一

package main

import "fmt"

func main() {
    var n int
    // i 為雞翁、j為雞母、k為雞雛
    for i := 0; i <= 100; i++ {
        for j := 0; j <= 100; j++ {
            for k := 0; k <= 100; k++ {
                // 雞翁的價格
                icost := i * 5
                // 雞母的價格
                jcost := j * 3

                // 雞雛的價格
                kcost := k / 3

                // 價格總和
                sum := icost + jcost + kcost
                // 購買的數量總和
                count := i + j + k
                // 小雞的數量必須為3的整倍數。不然會出現小數
                if sum == 100 && count == 100 && k % 3 == 0 {
                    n++
                    fmt.Printf("第%d種方法---雞翁數量: %d,雞母數量: %d,雞雛數量: %d\n",n,i,j,k)
                }
            }
        }
    }
}

方法二

package main

import "fmt"

func main() {
    var n int
    // i 為雞翁、j為雞母、k為雞雛
    for i := 0; i <= 100; i++ {
        for j := 0; j <= 100; j++ {
            k := 100 - i - j
            if k % 3 == 0 {
                sum := i*5 + j*3 + k/3
                if sum == 100 {
                    n++
                    fmt.Printf("第%d種方法---雞翁數量: %d,雞母數量: %d,雞雛數量: %d\n",n,i,j,k)
                }
            }
        }
    }
}

輸出結果

第1種方法---雞翁數量: 0,雞母數量: 25,雞雛數量: 75
第2種方法---雞翁數量: 4,雞母數量: 18,雞雛數量: 78
第3種方法---雞翁數量: 8,雞母數量: 11,雞雛數量: 81
第4種方法---雞翁數量: 12,雞母數量: 4,雞雛數量: 84

百錢買百雞