- accept their answer.
- acknowledge that you did not write it.
I need help displaying the max value in my while loop.
4 ビュー (過去 30 日間)
古いコメントを表示
So I have wrote this code for a while loop/string:
str=input('Enter an integer greater than 1:','s');
num=str2double(str);
cnt=0;
while num>1
cnt=cnt+1;
if mod(num,2)
num=num*3+1;
else
num=num/2;
end
end
s=cnt
It takes any given integer, multiplies it by 3 then adds 1 if it is odd. It divides the number by 2 when it is even. Also "s" represents the number of steps it takes for the loop to reach the end, which is when it reaches '1'. What I am having trouble with is figuring out how to display the max value reached during the loop.
Example, if the user enters "3" the steps would be 3 → 10 → 5 → 16 → 8 → 4 → 2 → 1.
I need the output to be "The max value is 16."
I have tried different codes for "max" such as 'max(num)' and 'max(cnt)' but I cannot figure out how to display the highest value.
1 件のコメント
Stephen23
2017 年 9 月 24 日
編集済み: Stephen23
2017 年 9 月 24 日
"So I have wrote this code..."
Really?! You wrote that code? Interestingly that code looks nothing like the code that you wrote, and exactly like the code that I gave you in my answer to your earlier question:
When you take someone's code you should:
Copying work and claiming it as your own is called plagiarism.
採用された回答
Walter Roberson
2017 年 9 月 24 日
編集済み: Walter Roberson
2017 年 9 月 24 日
str=input('Enter an integer greater than 1:','s');
num=str2double(str);
cnt=0;
maxnum = num;
while num>1
cnt=cnt+1;
if mod(num,2)
num=num*3+1;
else
num=num/2;
end
if num > maxnum; maxnum = num; end
end
s=cnt
maxnum
その他の回答 (1 件)
Image Analyst
2017 年 9 月 24 日
To " display the max value reached during the loop" you need to use fprintf(), assuming "during" means "inside". Here is your code with fprintf just before the bottom of the loop:
str=input('Enter an integer greater than 1:','s');
num=str2double(str);
iterationCount=0;
maxnum = num;
while num>1
iterationCount=iterationCount+1;
if mod(num,2)
num=num*3+1;
else
num=num/2;
end
if num > maxnum
maxnum = num;
end
fprintf('num = %d. The max after iteration #%d is %d\n', num, iterationCount, maxnum);
end
0 件のコメント
参考
製品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!