I have written a while loop that is supposed to determine the value of the parameter "n" for "a" to exceed the value 300. I know "n" should be 17, but I'm getting a value of 4 instead. Does anyone see the problem?
The code is as follows:
a = 10;
k = 0.5;
n = 2;
while a < 300
for m = 1:5
a = a + (a*k) + n;
end
n = n + 1;
end

 채택된 답변

Terry
Terry 2013년 10월 18일

0 개 추천

I realized that I didn't reinitialize my "a" variable, thanks to Barmar's comment. Although the code might not look very efficient, this is what works for me:
a = 10;
k = 0.5;
n = 2;
while a < 300
a = 10;
for m = 1:5
a = a + (a*k) + n;
end
if a >= 300
break
end
n = n + 1;
end

추가 답변 (1개)

Azzi Abdelmalek
Azzi Abdelmalek 2013년 10월 18일
편집: Azzi Abdelmalek 2013년 10월 18일

0 개 추천

Why are you using a for loop from 1 to 5? You are not supposed to increment n instead of m?

댓글 수: 2

Terry
Terry 2013년 10월 18일
I want to increment both "n" and "m." The "m" is supposed to iterate "a" 5 times for every new "n" value until "a" exceeds 300.
matlab is telling you the correct answer. iterating the following for 5 times will give a pretty large number.
a = a + (a*k) + n;

댓글을 달려면 로그인하십시오.

카테고리

도움말 센터File Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기

태그

질문:

2013년 10월 18일

답변:

2013년 10월 18일

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by