这是我写的
function r = remainder(n,d) % n>=0, d>0
if d == 0
r = 0;
else
r = rem(n,d);
end
end
但这不是一个递归函数
最佳答案
不太确定这是否会在任何地方发生故障,但我确信可以通过一些测试和逻辑概述进行验证。这是一个重复调用自身以求除法后的余数的函数。这将 rem()
余数函数分解为除数的递归减法,直到剩余余数小于除数。它们是一些额外的保护 if 语句,适用于涉及除数或数字 0 的情况。
函数调用:
Find_Remainder(4,5)
功能:
function [Remainder] = Find_Remainder(Number,Divisor)
if(Divisor > 0)
if(Number >= Divisor)
Remainder = Number - Divisor;
if(Remainder >= Divisor)
%Recursively calling the "Find_Remainder() function%
[Remainder] = Find_Remainder(Remainder,Divisor);
end
end
if(Number < Divisor)
Remainder = Number;
end
end
end
用于检查的测试脚本:
clc;
Number = 91;
Divisor = 71;
Find_Remainder(Number,Divisor)
rem(Number,Divisor)
使用 MATLAB R2019b 运行
关于matlab - 编写一个递归函数,计算 n >= 0 除以 d > 0 时的余数 r,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64650790/