标签:契数 return cur index int 数组 斐波 str ans
func splitIntoFibonacci(str string) []int { n=len(str) ans=make([]int,0) dfs(str,0, 0, 0) return ans } var ans []int var n int func dfs(str string,index, sum, prev int) bool { if index == n { return len(ans) >= 3 } cur := 0 for i := index; i < n; i++ { // 每个块的数字一定不要以零开头,除非这个块是数字 0 本身 if i > index && str[index] == '0' { break } cur = cur*10 + int(str[i]-'0') // 拆出的整数要符合 32 位有符号整数类型 if cur > math.MaxInt32 { break } if len(ans) >= 2 { if cur < sum { // f[i+2]<f[i]+f[i+1] continue } if cur > sum { break } } ans = append(ans, cur)// cur 符合要求,加入序列 F if dfs(str,i+1, prev+cur, cur) {//f[3]=f[1]+f[2] return true } ans = ans[:len(ans)-1] } return false }
标签:契数,return,cur,index,int,数组,斐波,str,ans 来源: https://www.cnblogs.com/-citywall123/p/16470563.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。