Golang | Leetcode Golang题解之第375题猜数字大小II

题目:

题解:

func getMoneyAmount(n int) int {
    f := make([][]int, n+1)
    for i := range f {
        f[i] = make([]int, n+1)
    }
    for i := n - 1; i >= 1; i-- {
        for j := i + 1; j <= n; j++ {
            f[i][j] = j + f[i][j-1]
            for k := i; k < j; k++ {
                cost := k + max(f[i][k-1], f[k+1][j])
                if cost < f[i][j] {
                    f[i][j] = cost
                }
            }
        }
    }
    return f[1][n]
}

func max(a, b int) int {
    if b > a {
        return b
    }
    return a
}
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 好的,下面是用golang语言编写的一个猜数字大小的程序的代码: ```go package main import ( "fmt" "math/rand" "time" ) func main() { // 初始化随机数种子 rand.Seed(time.Now().Unix()) // 生成一个 0-99 的随机数 number := rand.Intn(100) // 定义猜测次数计数器 count := 0 // 循环猜数字,直到猜对为止 for { // 提示用户输入数字 fmt.Print("请输入一个 0-99 的整数:") // 读取用户输入 var guess int _, err := fmt.Scanf("%d", &guess) if err != nil { fmt.Println("输入无效,请输入一个整数。") continue } // 判断猜测结果 if guess < number { fmt.Println("猜小了。") count++ } else if guess > number { fmt.Println("猜大了。") count++ } else { count++ fmt.Printf("猜对了!你用了 %d 次机会。\n", count) break } } } ``` 这个程序会生成一个 0-99 的随机数,然后提示用户输入一个数字。程序会根据用户输入的数字与随机数的大小关系给出相应的提示,然后再次提示用户输入数字。直到用户猜对为止,程序才会输出猜测次数并结束运行。 ### 回答2: package main import ( "fmt" "math/rand" "time" ) func main() { rand.Seed(time.Now().UnixNano()) target := rand.Intn(100) // 生成0-99之间的随机数字 fmt.Println("猜数字游戏开始,请输入一个0-99的整数:") var guess int for { _, err := fmt.Scanf("%d", &guess) if err != nil { fmt.Println("输入错误,请输入一个有效的整数:") continue } if guess < target { fmt.Println("太小了,请继续猜:") } else if guess > target { fmt.Println("太大了,请继续猜:") } else { fmt.Println("恭喜猜对了!") break } } } 这个程序使用了golang语言来编写一个猜数字大小的游戏。在游戏开始之前,会生成一个0-99之间的随机数作为目标数字。然后通过用户的输入来猜测这个数字,如果猜测的数字小于目标数字,程序会提示"太小了,请继续猜:",如果猜测的数字大于目标数字,程序会提示"太大了,请继续猜:",直到猜测的数字等于目标数字时,程序会提示"恭喜猜对了!"并结束游戏。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值