最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Golang算法問題之整數(shù)拆分實(shí)現(xiàn)方法分析

 更新時間:2017年02月17日 14:40:11   作者:books1958  
這篇文章主要介紹了Golang算法問題之整數(shù)拆分實(shí)現(xiàn)方法,結(jié)合實(shí)例形式分析了Go語言數(shù)值運(yùn)算與數(shù)組遍歷相關(guā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):

復(fù)制代碼 代碼如下:
package huawei
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ì)有所幫助。

相關(guān)文章

  • Go語言的Windows下環(huán)境配置以及簡單的程序結(jié)構(gòu)講解

    Go語言的Windows下環(huán)境配置以及簡單的程序結(jié)構(gòu)講解

    這篇文章主要介紹了Go語言的Windows下環(huán)境配置以及簡單的程序結(jié)構(gòu)講解,從編程語言約定俗成的hellow world開始,需要的朋友可以參考下
    2015-10-10
  • go?分布式鎖簡單實(shí)現(xiàn)實(shí)例詳解

    go?分布式鎖簡單實(shí)現(xiàn)實(shí)例詳解

    這篇文章主要為大家介紹了go?分布式鎖簡單實(shí)現(xiàn)實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09
  • GO中對map排序的實(shí)現(xiàn)

    GO中對map排序的實(shí)現(xiàn)

    本文主要介紹了GO中對map排序的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • Go?語言簡單實(shí)現(xiàn)Vigenere加密算法

    Go?語言簡單實(shí)現(xiàn)Vigenere加密算法

    這篇文章主要介紹了Go語言簡單實(shí)現(xiàn)Vigenere加密算法,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的朋友可以參考一下
    2022-09-09
  • 詳解Golang中SQLX庫的高級操作

    詳解Golang中SQLX庫的高級操作

    sqlx是Golang中的一個知名三方庫,其為Go標(biāo)準(zhǔn)庫database/sql提供了一組擴(kuò)展支持,下面就來和大家分享一下SQLX庫的高級操作吧,希望對大家有所幫助
    2023-06-06
  • 淺談Go語言不提供隱式數(shù)字轉(zhuǎn)換的原因

    淺談Go語言不提供隱式數(shù)字轉(zhuǎn)換的原因

    本文主要介紹了淺談Go語言不提供隱式數(shù)字轉(zhuǎn)換的原因,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • Go構(gòu)建高性能的命令行工具使例詳解

    Go構(gòu)建高性能的命令行工具使例詳解

    這篇文章主要為大家介紹了Go構(gòu)建高性能的命令行工具使例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12
  • go語言中decimal的用法詳解

    go語言中decimal的用法詳解

    本文主要介紹了go語言中decimal的用法詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • Go語言編程實(shí)現(xiàn)支持六種級別的日志庫?

    Go語言編程實(shí)現(xiàn)支持六種級別的日志庫?

    這篇文章主要為大家介紹了使用Golang編寫一個支持六種級別的日志庫示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • golang的time包:秒、毫秒、納秒時間戳輸出方式

    golang的time包:秒、毫秒、納秒時間戳輸出方式

    這篇文章主要介紹了golang的time包:秒、毫秒、納秒時間戳輸出方式,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12

最新評論

宣威市| 虎林市| 财经| 乐平市| 阳信县| 库车县| 嘉定区| 泾阳县| 云龙县| 苍溪县| 梧州市| 广汉市| 满城县| 高唐县| 库车县| 恩平市| 九台市| 石柱| 横山县| 惠水县| 阆中市| 龙里县| 南涧| 甘肃省| 太原市| 卢龙县| 林芝县| 长海县| 镇平县| 新平| 罗定市| 南汇区| 阳江市| 卫辉市| 沙坪坝区| 烟台市| 英超| 岗巴县| 偃师市| 陇川县| 临湘市|