我看了this video并写下了代码。
代码应在以除法出现的重复小数周围加括号。
今天我试着把它从Python翻译成R,但是我对ifelse
、while
和function
的知识并没有我所希望的那么好。
下面你可以看到我已经尝试过的步骤以及我已经走了多远,但是我现在需要帮助来完成下面的“while命令”部分。你知道吗
rep_dec = function(num,den){
neg = FALSE
if (den == 0){
return("Undefined")
} else if (num == 0){
return("0")
} else if (num*den < 0){
neg = TRUE
} else if (num%%den == 0){
return(as.character(num/den))
}
numerator = abs(num)
denominator = abs(den)
paste("",(numerator%/%denominator),".")
results = list(0)
while (TRUE){
remainder = numerator %% denominator
numerator = remainder * 10
quotient = numerator %/% denominator
if ([numerator,quotient]%!in% results){
}
[视频中的Python代码:]
def repeating_decimals(num,den):
if den == 0:
"Undefined"
if num == 0:
"0"
neg = False
if num*den < 0:
neg = True
if num % den == 0:
return str(num / den)
numerator = abs(num)
denominator = abs(den)
output = ""
output += str(numerator // denominator)
output += "."
print(output)
num_q = []
while True:
rem = numerator % denominator
if rem == 0:
for element in num_q:
output+= str(element[-1])
break
numerator = rem * 10
q = numerator // denominator
if [numerator, q] not in num_q:
num_q.append([numerator, q])
elif [numerator, q] in num_q:
ind = num_q.index([numerator, q])
for element in num_q[:ind]:
output+=str(element[-1])
output+= "("
for element in num_q[ind:]:
output+= str(element[-1])
output+=")"
break
print(output)
repeating_decimals(1,7)
如果有人能帮我把这段Python代码翻译成R代码,我会对更复杂的函数和下一步有更多的了解
我想找到一个解决方案,在数字前面加一个“-”,看看我是否正确地得到了ifelse
语句的加法。你知道吗
在R中,模采用
%%
的形式,这样代码就可以工作了。你知道吗这应该或多或少做你需要的,因为我不能测试,可能有一些打字错误。为了学习
R
,我鼓励您查看我使用的函数的文档。与python的主要区别在于我使用了thwo向量num_vect
和quo_vect
,而不是python
中的数组。实际上,array的数组在R中不存在(我可以使用数据框而不是矩阵)。你知道吗相关问题 更多 >
编程相关推荐