除以两个整数,得到整数商和余数,而不用除以R

时间:2018-11-15 20:20:12

标签: r algorithm division

受这些帖子启发的

stackoverflow post 1stackoverflow post 2geeksforgeeks 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))

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

1 个答案:

答案 0 :(得分:1)

使用适当的赋值并使我们的函数返回某些内容,我们得到:

 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专业的学生,​​并且从未从头实现过模和余数函数。