博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
探索与回溯算法
阅读量:6117 次
发布时间:2019-06-21

本文共 1086 字,大约阅读时间需要 3 分钟。

hot3.png

package mainimport (	"fmt")/*Perfect Squares My Submissions QuestionGiven a positive integer n, find the least number of perfect square numbers (for example, 1, 4, 9, 16, ...) which sum to n.For example,  given n = 14, return 3 because 14 = 1 + 4 + 9.*/var arr = []int{1, 4, 9, 16}func addsequence(arr []int, num int) {	result := searchback(arr, num, 0)	if result == 1 {		fmt.Printf("the seq number can add to %v\n", num)	} else {		fmt.Printf("the seq number can not add to %v\n", num)	}}func searchback(arr []int, num int, index int) int {	length := len(arr)	if index == length {		return -1	}	tmp := num - arr[index]	if tmp == 0 {		return 1	} else if tmp > 0 { //只有大于0的时候往下探索		res := searchback(arr, tmp, index+1)		if res == 1 {			return 1		} else {			return searchback(arr, num, index+1)		}	} else {		return -1	}}func main() {	addsequence(arr, 6)	addsequence(arr, 13)	addsequence(arr, 15)	addsequence(arr, 29)}

输出结果:

the seq number can not add to 6the seq number can add to 13the seq number can not add to 15the seq number can add to 29

转载于:https://my.oschina.net/yang1992/blog/608183

你可能感兴趣的文章
android防止内存溢出浅析
查看>>
4.3.3版本之引擎bug
查看>>
SQL Server表分区详解
查看>>
使用FMDB最新v2.3版本教程
查看>>
SSIS从理论到实战,再到应用(3)----SSIS包的变量,约束,常用容器
查看>>
STM32启动过程--启动文件--分析
查看>>
垂死挣扎还是涅槃重生 -- Delphi XE5 公布会归来感想
查看>>
淘宝的几个架构图
查看>>
Android扩展 - 拍照篇(Camera)
查看>>
JAVA数组的定义及用法
查看>>
充分利用HTML标签元素 – 简单的xtyle前端框架
查看>>
设计模式(十一):FACADE外观模式 -- 结构型模式
查看>>
iOS xcodebuile 自动编译打包ipa
查看>>
程序员眼中的 SQL Server-执行计划教会我如何创建索引?
查看>>
【BZOJ】1624: [Usaco2008 Open] Clear And Present Danger 寻宝之路(floyd)
查看>>
cmake总结
查看>>
数据加密插件
查看>>
linux后台运行程序
查看>>
win7 vs2012/2013 编译boost 1.55
查看>>
IIS7如何显示详细错误信息
查看>>