受到这些帖子的启发: 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/