Huawei OJ 题解 31. 整数拆分 Go 参考解答


## 简介
- 详情:http://oj.rnd.huawei.com/problems/31/details
- 难度:简单

## 思路
TODO

## 用例
TODO

## 解答
```go
package main

import (
"fmt"
"io"
)

// Go reference template, modify as needed
func main() {
/**
* n = 4+0
* n = 3+1
* n = 2+2 | 2+1+1
* n = 1+1+1+1
* 递归公式:f(n,m) = f(n,m-1) + f(n-m,m)
*/
//定义一个最大值m,初始化为n
var n int
for ; ; {
_, err := fmt.Scan(&n)
if err == io.EOF {
break
}
sum := getFunNum(n,n)
fmt.Println(sum)
}

}

func getFunNum(n int,m int) (count int){
if n == 1 {
return 1
}
if m == 1 {
return 1
}
if m > n {
return getFunNum(n,n)
}
if m == n {
return 1 + getFunNum(n,n-1)
}
if m < n {
return getFunNum(n,m-1) + getFunNum(n-m,m)
}
return n
}

```

## 链接
- [Huawei OJ 参考解答汇总](http://3ms.huawei.com/km/blogs/details/7772333)
- [Huawei OJ JetBrains 编码插件](http://3ms.huawei.com/km/blogs/details/7751105)
原文地址:https://www.cnblogs.com/gongxianjin/p/15787209.html