matlab 生成数组

问题描述:

matlab 生成数组
输入一个正整数n,n作为初始数据,反复计算,知道1 为止
如果n为偶数,则这一位上为n/2
如果n为奇数,则这一位上为3*n+1
例如 :n =17,生成一个数列
52→26→13→40→20→10→5→16→8→4→2→1
写一个function 让这个function返回这个数列的长度,数列必须停止在1.
1个回答 分类:综合 2014-10-27

问题解答:

我来补答
编写函数:function len = len_series(n)
A = n;
while abs(n-1) > eps
    if ~rem(n,2)
        n = n/2;
    else
        n = n*3+1;
    end
    A(end+1) = n;
end
fprintf('%i',A(1));
fprintf('→%i',A(2:end));
len = length(A);调用>> len_series(17) 
17→52→26→13→40→20→10→5→16→8→4→2→1
ans =
    13
 
 
展开全文阅读
剩余:2000