除以两个整数,给出整数商和余数,而不除以或乘以R

  • 本文关键字:整数 余数 两个 r algorithm division
  • 更新时间 :
  • 英文 :


受到这些帖子的启发:stackoverflow帖子1,Stackoverfow帖子2,极客发布

我想用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专业的学生,从未从头开始实现模数和余数函数。

最新更新