Golang算法問題之整數(shù)拆分實(shí)現(xiàn)方法分析
本文實(shí)例講述了Golang算法問題之整數(shù)拆分實(shí)現(xiàn)方法。分享給大家供大家參考,具體如下:
一個整數(shù)總可以拆分為2的冪的和,例如:
7=1+2+4
7=1+2+2+2
7=1+1+1+4
7=1+1+1+2+2
7=1+1+1+1+1+2
7=1+1+1+1+1+1+1
總共有6種不同的拆分方式。
再比如:4可以拆分成:4 = 4,4 = 1 + 1 + 1 + 1,4 = 2 + 2,4=1+1+2。
用f(n)表示n的不同拆分的種數(shù),例如f(7)=6.
要求編寫程序,讀入n(不超過1000000),輸出f(n)
輸入:一個整數(shù)N(1<=N<=1000000)。
輸出:f(n)
輸入數(shù)據(jù)如果超出范圍,輸出-1。
樣例輸入:
7
樣例輸出:
6
代碼實(shí)現(xiàn):
import (
"fmt"
)
func Test08Base() {
input := 1000000
output := numberSplit(input)
fmt.Println(output)
}
func numberSplit(n int) int {
if n < 1 || n > 1000000 {
return -1
}
//1=1,1種拆分方式
if n == 1 {
return 1
}
//2=2,2=1+1,2種拆分方式
if n == 2 {
return 2
}
//n>=3
//保存已經(jīng)計(jì)算出來的數(shù)值
data := make([]int, n+1)
data[0] = 0 //該值無意義純占位作用
data[1] = 1
data[2] = 2
for i := 3; i <= n; i++ {
if i%2 == 0 {
//偶數(shù)
data[i] = data[i-2] + data[i/2]
} else {
//奇數(shù)
data[i] = data[i-1]
}
}
return data[n]
}
希望本文所述對大家Go語言程序設(shè)計(jì)有所幫助。
- Golang排列組合算法問題之全排列實(shí)現(xiàn)方法
- Golang算法問題之?dāng)?shù)組按指定規(guī)則排序的方法分析
- Golang算法之田忌賽馬問題實(shí)現(xiàn)方法分析
- Golang最大遞減數(shù)算法問題分析
- Golang正整數(shù)指定規(guī)則排序算法問題分析
- Go語言實(shí)現(xiàn)的樹形結(jié)構(gòu)數(shù)據(jù)比較算法實(shí)例
- Go語言算法之尋找數(shù)組第二大元素的方法
- go語言睡眠排序算法實(shí)例分析
- GO語言利用K近鄰算法實(shí)現(xiàn)小說鑒黃
- golang實(shí)現(xiàn)分頁算法實(shí)例代碼
相關(guān)文章
使用client-go工具調(diào)用kubernetes API接口的教程詳解(v1.17版本)
這篇文章主要介紹了使用client-go工具調(diào)kubernetes API接口(v1.17版本),本文通過圖文實(shí)例相結(jié)合給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-08-08golang 數(shù)組去重,利用map的實(shí)現(xiàn)
這篇文章主要介紹了golang 數(shù)組去重,利用map的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-04-04golang validator庫參數(shù)校驗(yàn)實(shí)用技巧干貨
這篇文章主要為大家介紹了validator庫參數(shù)校驗(yàn)實(shí)用技巧干貨,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪2022-04-04Go基礎(chǔ)教程系列之?dāng)?shù)據(jù)類型詳細(xì)說明
這篇文章主要介紹了Go基礎(chǔ)教程系列之?dāng)?shù)據(jù)類型詳細(xì)說明,需要的朋友可以參考下2022-04-04golang中按照結(jié)構(gòu)體的某個字段排序?qū)嵗a
在任何編程語言中,關(guān)乎到數(shù)據(jù)的排序都會有對應(yīng)的策略,下面這篇文章主要給大家介紹了關(guān)于golang中按照結(jié)構(gòu)體的某個字段排序的相關(guān)資料,需要的朋友可以參考下2022-05-05