Деление двух целых чисел, давая целое частное и остаток без деления или умножения на R - PullRequest
0 голосов
/ 15 ноября 2018

вдохновлено этими сообщениями: сообщение stackoverflow 1 , сообщение stackoverflow 2 , сообщение geeksforgeeks

Я хотел написать алгоритм на 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 голосов
/ 15 ноября 2018

Используя правильное присваивание и заставляя нашу функцию возвращать что-то, мы получаем:

 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))

Я занимаюсь только положительными случаями, так как это самый простой случай.Я позволю вам разобраться в логике того, как заставить это работать в трех других случаях, так как это а) удовольствие в выполнении этих вещей, б) я не являюсь мажором CS и никогда не реализовывал модуль и функцию остатка с нуля.

...