display while loop output as an array

1 回表示 (過去 30 日間)
Ahmed Emam
Ahmed Emam 2017 年 10 月 5 日
コメント済み: Walter Roberson 2017 年 10 月 5 日
how do you display the output of a while loop as an array.
code:
function [] = hailstone_sequence(n)
n = input('Value for n: ');
h = 1;
while(n~=1)
if n==1
return
elseif mod(n,2)
n=3*n +1
else
n=n/2
end
h=h+1;
end
  2 件のコメント
jean claude
jean claude 2017 年 10 月 5 日
what's your output variable ?
Ahmed Emam
Ahmed Emam 2017 年 10 月 5 日
the output should be the values for each iteration in an array, so for 3 the output should be 3 10 5 16 8 4 2 1

サインインしてコメントする。

採用された回答

Walter Roberson
Walter Roberson 2017 年 10 月 5 日
Just before the h=h+1 insert
output(h) = n;
  2 件のコメント
Ahmed Emam
Ahmed Emam 2017 年 10 月 5 日
tried it, works but I am missing the initial value
Walter Roberson
Walter Roberson 2017 年 10 月 5 日
Then move it to after the while() statement.
But question: does the output need to include the 1? If so then make sure to add a 1 to the end before the return statement.

サインインしてコメントする。

その他の回答 (1 件)

jean claude
jean claude 2017 年 10 月 5 日
編集済み: jean claude 2017 年 10 月 5 日
function [output] = hailstone_sequence(n)
output=[n];
h = 1;
while(n~=1)
if n==1
return
elseif mod(n,2)
n=3*n +1
else
n=n/2
end
h=h+1;
output= [output n];
end

カテゴリ

Help Center および File ExchangeLoops and Conditional Statements についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by