gpt4 book ai didi

c# - 我如何确定添加 2 个数字是否涉及重组/结转或减去 2 个数字是否涉及借用?

转载 作者:行者123 更新时间:2023-11-30 14:01:32 26 4
gpt4 key购买 nike

我需要创建一个函数来生成 x 和 y 之间的 2 个随机数(例如 x = 1,y = 20),添加时不会涉及重组/结转,减去时不会涉及借用。

例如,

18 + 1 = good
14 + 5 = good
18-7 = good
29 - 8 = good

15 + 6 = bad
6 + 7 = bad
21 - 3 = bad
36 - 8 = bad etc.

我想创建一个简单的工作表生成器,它将使用上述要求生成示例问题。

我想我总是可以将数字转换为字符串,为 2 个数字中的每一个获取最右边的数字,将它们转换回整数,然后测试一个是否大于另一个。对所有数字重复。唯一的问题是,那太丑陋了(读起来效率低下)。我相信有更好的方法。有人有什么建议吗?谢谢

最佳答案

一次生成一个数字。例如

a1 = rand(9)
a2 = rand(9 - a1)

b1 = rand(9)
b2 = rand(9 - b1)

x = b1*10 + a1
y = b2*10 + a2

从构造你知道x+y不会涉及任何进位,因为a1+a2 <= 9b1 + b2 <= 9 .

你可以做类似的减法。

如果要将整体范围限制为 [1..20] 而不是 [1..99],只需调整最左边数字的范围即可:

b1 = rand(1)
b2 = rand(1 - b1)

关于c# - 我如何确定添加 2 个数字是否涉及重组/结转或减去 2 个数字是否涉及借用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8059400/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com