您好我在Matlab中遇到以下功能问题。有人可以帮忙吗? 2520是可以除以1到10中的每个数字而没有任何余数的最小数字。编写一个名为smallest_multiple的函数,它返回一个uint64,这是一个最小的正数,可以被1到n的所有数字整除,其中n是一个正整数标量,是函数的唯一输入参数。如果结果大于可以表示为uint64的结果,则函数返回0.(由Project Euler启发。)
下面是我为该函数编写的代码,但它给出了错误 反馈:你的函数在参数2中出错了
Your solution is _not_ correct.
请帮助......
function [answer]=smallest_multiple(n)
limit = 1e10;
N = 20;
for i = N:N:limit
for j = N:-1:1
if mod(i,j) ~= 0
break
end
end
if j == 1
answer = i;
break
end
end
fprintf('The smallest evenly divisible number is %.0d\n',answer)
答案 0 :(得分:0)
您的功能看起来正确。但是,您传递的参数是小写n
,而不是您在代码中使用的大写N
。
所以正确的函数(带参数的限制)是
function [answer]=smallest_multiple(N,limit)
for i = N:N:limit
for j = N:-1:1
if mod(i,j) ~= 0
break
end
end
if j == 1
answer = i;
break
end
end
fprintf('The smallest evenly divisible number is %.0d\n',answer)