Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk melaksanakan penjumlahan di Golang

Bagaimana untuk melaksanakan penjumlahan di Golang

PHPz
PHPzasal
2023-03-30 10:00:011281semak imbas

Seperti yang kita sedia maklum, Golang ialah bahasa pengaturcaraan yang cekap, ringkas dan pantas yang digemari dan dicari oleh pengaturcara sejak ia dilahirkan. Algoritma penjumlahan sentiasa menjadi tumpuan penerokaan dan penyelidikan oleh banyak pembangun Artikel ini akan memperkenalkan cara melaksanakan penjumlahan di Golang.

Pertama, kita boleh menggunakan gelung untuk melaksanakan jumlah. Contohnya, untuk mengira jumlah daripada 1 hingga 100, kita boleh menggunakan kod berikut:

sum := 0
for i := 1; i <= 100; i++ {
    sum += i
}
fmt.Println(sum)

Dalam kod di atas, kami menggunakan pembolehubah sum untuk menyimpan hasil penjumlahan akhir. Melalui gelung for, nilai i ditambahkan pada sum setiap kali, dan akhirnya jumlah terkumpul diperoleh. Kerumitan masa kaedah ini ialah O(n).

Selain gelung, kita juga boleh menggunakan rekursi untuk melaksanakan penjumlahan. Melalui rekursi, kita boleh menguraikan masalah besar kepada berbilang masalah kecil, menyelesaikannya langkah demi langkah, dan kemudian menjumlahkan hasil masalah kecil untuk mendapatkan hasil akhir. Contohnya, kod berikut melaksanakan pengiraan rekursif jumlah 1 hingga 100:

func sum(n int) int {
    if n == 1 {
        return 1
    }
    return n + sum(n-1)
}

fmt.Println(sum(100))

Dalam kod ini, fungsi sum() mengambil integer n sebagai parameter formal dan membandingkannya dengan 1. Jika n ialah 1, kembalikan 1; jika tidak, kembalikan hasil n tambah sum(n-1). Akhir sekali, panggil fungsi ini dan masukkan parameter 100 untuk mengira jumlah dari 1 hingga 100. Kerumitan masa ialah O(n).

Akhir sekali, kita juga boleh menggunakan map-reduce untuk melaksanakan penjumlahan. Di Golang, kita boleh menggunakan pakej golang.org/x/text/message/transform dan pakej golang.org/x/text/message/catalog untuk pelaksanaan. Kod terperinci adalah seperti berikut:

import (
    "golang.org/x/text/message"
    "golang.org/x/text/message/catalog"
)

// 使用 map-reduce 的方式实现求和,时间复杂度为 O(log n)。
func sum(n int) int {
    msgs := message.NewPrinter(catalog.New("en"))
    var sum int
    msg.Transform(msgs.Sprint(1), func(r rune) bool {
        sum += int(r - '0')
        return true
    })
    return sum
}

fmt.Println(sum(100))

Dalam kod ini, kami melakukan operasi pengurangan peta dengan menukar nombor kepada rentetan untuk mendapatkan hasil penjumlahan yang diingini. Kerumitan masa ialah O(log n).

Ringkasnya, di atas adalah tiga kaedah utama untuk melaksanakan penjumlahan di Golang. Untuk senario dan keperluan yang berbeza, kita boleh memilih cara yang berbeza untuk melaksanakannya. Harap artikel ini dapat membantu semua.

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan penjumlahan di Golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn