gpt4 book ai didi

r - 两个整数相除,给出整数商和余数,R中不用除法或乘法

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:08:26 24 4
gpt4 key购买 nike

受到这些帖子的启发: stackoverflow post 1 , stackoverflow post 2 , geeksforgeeks post

我想在 R 中编写一个算法来除以两个整数,给出整数商和余数而不用除法或乘法。

但是,我正在努力将代码转换为 R。这是我到目前为止得到的结果:

Division_alternative <- function(dividend, divisor) {
# Calculate sign of divisor
if (dividend < 0 | divisor < 0) {
sign <- -1
} else {
sign <- 1
}
# Transform to positive
dividend = abs(dividend)
divisor = abs(divisor)
# Initialize the quotient
quotient = 0
while (dividend >= divisor) {
print(sign*quotient)
dividend - divisor
quotient + 1 }
}

a = 25
b = 4
print(Division_alternative(a, b))

到目前为止,我不确定代码有什么问题,它不会返回任何东西。有人知道吗?

最佳答案

使用适当的赋值并让我们的函数返回一些东西,我们得到:

 Division_alternative <- function(dividend, divisor) {
##Handle only positive cases

stopifnot((dividend > 0 && divisor >0))

quotient = 0
while (dividend >= divisor) {
# print(sign*quotient)
dividend <- dividend - divisor
quotient <- quotient + 1 }

return(list(dividend, quotient))

}

a = 25
b = 4
print(Division_alternative(a, b))

我只处理正面案例,因为这是最简单的案例。我将让您了解如何使其在其他 3 种情况下起作用的逻辑,因为那是 a) 做这些事情的乐趣,b) 我不是 CS 专业的,并且从未从头开始实现模数和余数函数。

关于r - 两个整数相除,给出整数商和余数,R中不用除法或乘法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53327315/

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