Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
156 views
in Technique[技术] by (71.8m points)

matlab - How can this command than uses a "find" be changed to an "if" and "for" loops

To determine all integers between 1 and 50 for which n3 ? n2 + 40 is greater than 1000 and n is not divisible by 3. And then solve the question: Are any integers between 1 and 50 perfect (that is, are they equal to the sum of their factors)? The book gives the following code

n = 1:50;
       f = n.^3-n.^2+40;
       ii = find(f > 1000 & mod(n,3) ~= 0);
n(ii)

But I want to change this code only using a "for" and "if" loops. Can someone help me to change this code please?

Thanks a lot in advance.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)
n = 1:50;
f = n.^3-n.^2+40;
results = [];
for num = n //let's get into n
    if f(num) > 1000 & mod(num,3) ~= 0
        results(end+1) = num; //store the result into an array
    end
end

It is very easy, but find looks like a better fit here.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

1.4m articles

1.4m replys

5 comments

57.0k users

...