博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
笔试题:爱情数字
阅读量:7051 次
发布时间:2019-06-28

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

 

这个怎么做?用暴力法解?所有可能排列,求最大值?

 

下面是用Go语言实现的代码,组合遍历求解,不知道对不对

 

package mainimport (	"bufio"	"fmt"	"os"	"strconv"	"strings")var tmplist []intfunc main() {	for {		// v, val := fmtRead()		v, val := bufioRead()		result := loveMagicNumber(v, val, 8)		fmt.Println("可油漆最大数字为:", result)		fmt.Println()	}}func bufioRead() (int, []int) {	var v int	var val = []int{}	r := bufio.NewReader(os.Stdin)	for {		fmt.Println("请输入油漆容量:(整数)")		strBytes, _, err := r.ReadLine()		str := strings.TrimSpace(string(strBytes))		v, err = strconv.Atoi(string(str))		if err == nil {			break		} else {			fmt.Println(err)		}	}	for {		fmt.Println("请输入1-9,九个数字各自需要的油漆:(整数)")		strBytes, _, err := r.ReadLine()		str := strings.TrimSpace(string(strBytes))		_ = err		strs := strings.Split(str, " ")		for i := 0; i < len(strs); i++ {			if strs[i] == "" {				continue			}			vt, _ := strconv.Atoi(strs[i])			val = append(val, vt)		}		break	}	fmt.Println("油漆容量:1-9数字耗费油漆量", v, ":", val)	return v, val}func loveMagicNumber(v int, val []int, index int) int {	if index < 0 {		return valueof(tmplist)	}	r1 := loveMagicNumber(v, val, index-1)	r2 := r1	if v-val[index] >= 0 {		tmplist = append(tmplist, index+1)		r2 = loveMagicNumber(v-val[index], val, index-1)		tmplist = tmplist[0 : len(tmplist)-1]	}	return max(r1, r2)}func valueof(valist []int) int {	value := 0	for _, i := range valist {		value = value*10 + i	}	return value}func max(a int, b int) int {	if a > b {		return a	}	return b}

  

 顺便吐槽下Go语言,Go语言的库不好用,不管什么标准输入获取、字符串操作Split,Atoi,非常反直觉,库文档写的也不是很清楚

转载于:https://www.cnblogs.com/simplelovecs/p/5343020.html

你可能感兴趣的文章
sublime text格式化json快捷键
查看>>
获得数据库自动生成的主键
查看>>
磁盘阵列
查看>>
y轴数据变换利器——yaxis-transformer
查看>>
Hibernate缓存机制
查看>>
从头开始复习css之动画
查看>>
sed常见用法,删除匹配行的上2行,下3行
查看>>
【BZOJ】1415 [Noi2005]聪聪和可可 期望DP+记忆化搜索
查看>>
android 7.1 调用相机崩溃解决办法
查看>>
访问控制符
查看>>
Android studio修改字体(font)大小(size)
查看>>
------第二节-----------------第二讲----单链表的基本操作---------
查看>>
iOS 百度地图大头针使用
查看>>
1118: 零起点学算法25——求两点之间的距离
查看>>
delegate代理设计模式
查看>>
花10分钟搞懂开源框架吧 - 【NancyFx.Net】
查看>>
busybox的使用
查看>>
GridView(网格视图)+MotionEvent(触控事件)实现可以拖动排序的网格图
查看>>
jq实现全选或者全不选
查看>>
牛人博客
查看>>