r - 将两个整数相除,给出整数商和余数,而不用在 R 中进行除法或乘法
问题描述
受这些帖子的启发: 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))
到目前为止,我不确定代码有什么问题,它不会返回任何东西。任何人的线索?
解决方案
使用正确的赋值并让我们的函数返回一些东西,我们得到:
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 专业的,从来没有从头开始实现模数和余数函数。
推荐阅读
- javascript - AngularJs 日期格式转换
- ios - 苹果开发者账号可以管理的账号数量有限制吗?
- c# - 在菜单中显示对话框并防止单击对话框控件关闭菜单/对话框
- java - 隐藏“无法解决”错误
- html - Twig 样式表继承问题 - Symfony 4
- firebase - Firebase 离子 4 插件
- angular - 无法安装 ngx-translate/core,这是我的错误日志。(Ionic 4 和 Angular 7.x)
- sql-server - Grails 3.3.9 找不到当前线程的会话
- python - 在没有括号或其他符号的文本文件中写入列表或数组
- azure - azure TenantId 是否等同于 azure log analytics WorkspaceId?