问: golang 生成100以内加减乘除算式, 算式结果大于0, 除数不能为0
答:
这是一个可以使用 Go 语言实现的方案:
package main
import (
"fmt"
"math/rand"
"time"
)
func main() {
// 使用当前时间作为随机数种子
rand.Seed(time.Now().UnixNano())
// 生成 100 以内的随机整数
num1 := rand.Intn(100)
num2 := rand.Intn(100)
// 随机选择一个运算符
operators := []string{"+", "-", "*", "/"}
operator := operators[rand.Intn(4)]
// 根据运算符生成算式
var result float64
switch operator {
case "+":
result = float64(num1 + num2)
case "-":
result = float64(num1 - num2)
case "*":
result = float64(num1 * num2)
case "/":
// 除数不能为 0,因此需要特判
if num2 == 0 {
num2 = 1
}
result = float64(num1) / float64(num2)
}
// 如果结果小于 0,则重新生成算式
if result <= 0 {
main()
} else {
fmt.Printf("%d %s %d = %.2f\n", num1, operator, num2, result)
}
}
上面的代*会码**生成一个随机的加减乘除算式,并打印出来。如果生成的算式的结果小于等于 0,则会重新生成算式。
需要注意的是,在 Go 中,除法运算符 (/) 默认返回整数结果,因此需要将其中一个操作数转为浮点数,才能得到浮点结果。
=======================
以上是ChatGPT的完整回答, 本人亲测正常运行无error, 你觉得如何呢?