I dont know where i was wrong
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
%I am doing project euler 8,this is my code
function y = euler008(x)
x=num2str(x)
d=[]
for i=1:length(x)
number = str2num(x(i:i+4))
digits = num2str(number) - '0'
d=[d prod(digits)]
end
y=max(d)
end
%i dont know why this code is wrong
0 commentaires
Réponse acceptée
Nguyen Huy
le 11 Mai 2021
Modifié(e) : Nguyen Huy
le 11 Mai 2021
2 commentaires
Atsushi Ueno
le 11 Mai 2021
one more thing, indexing shall be within 1 to length(x), so length(x)+4 exceeds the matrix dimensions.
for i=1:length(x)-4
Plus de réponses (3)
Atsushi Ueno
le 11 Mai 2021
There is a variable 'a' in caller workspase and a function euler008(a) is called, but argument in the function euler008(x) is 'x'.
number = str2num(a(i:i+4)
shall be changed to
number = str2num(x(i:i+4))
Also, you need adding missing parenthesis as the first answer.
0 commentaires
Atsushi Ueno
le 11 Mai 2021
You are trying to access to variable x's index from 1 (min) to length(x)+4 (max).
for i=1:length(x)
number = str2num(x(i:i+4))
The maximum index number of variable x has been exceeded. If you modify the code to the following, it will work correctly.
for i=1:length(x)-4
number = str2num(x(i:i+4))
0 commentaires
Atsushi Ueno
le 11 Mai 2021
>The large number will be given as a string, 1xn characters.
So, x=num2str(x) on 2nd line won't work correctly. It should be deleted.
0 commentaires
Voir également
Catégories
En savoir plus sur Matrix Indexing dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!