You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改算法使除法操作返回整数而非浮点数?

修改除法函数以返回整数结果(不使用floor运算符)

我来帮你搞定这个问题——你现在的除法操作返回浮点数,要改成只返回整数,而且不能用floor运算符,其实只需要调整divided_by函数的实现就可以了。

问题分析

原代码里的divided_by(y)返回的是一个执行浮点数除法的lambda:lambda x: x/y,这就是为什么one(divided_by(four()))会得到0.25。我们需要把它改成执行整数除法的逻辑。

解决方案

这里有两种简单且符合要求的实现方式:

方式1:使用Python整数除法运算符//

//是Python内置的整数除法运算符,它会直接返回向下取整的整数结果,完全不需要依赖floor函数。修改后的divided_by函数如下:

def divided_by(y): return lambda x: x // y

测试一下你的示例:

print(one(divided_by(four())))  # 输出: 0

完全符合预期。另外比如five(divided_by(two()))会返回2,也是正确的整数结果。

方式2:使用int()函数截断小数部分

如果你需要的是向零取整的结果(比如-1/4要得到0而不是-1),可以用int()转换浮点数结果:

def divided_by(y): return lambda x: int(x / y)

这种方式会直接砍掉浮点数的小数部分,保留整数部分,同样不需要floor运算符。

完整修改后的代码

把修改后的divided_by函数替换到原代码里,完整代码如下:

def zero(f = None): return 0 if not f else f(0)
def one(f = None): return 1 if not f else f(1)
def two(f = None): return 2 if not f else f(2)
def three(f = None): return 3 if not f else f(3)
def four(f = None): return 4 if not f else f(4)
def five(f = None): return 5 if not f else f(5)
def six(f = None): return 6 if not f else f(6)
def seven(f = None): return 7 if not f else f(7)
def eight(f = None): return 8 if not f else f(8)
def nine(f = None): return 9 if not f else f(9)
def plus(y): return lambda x: x+y
def minus(y): return lambda x: x-y
def times(y): return lambda x: x*y
# 这里用方式1的实现,你可以根据需求换成方式2
def divided_by(y): return lambda x: x // y

这样所有除法操作都会返回整数结果,完全满足你的要求。

内容的提问来源于stack exchange,提问作者Rahul

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 07:49:07