matlab 生成数组
来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/04/29 23:59:32
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.
输入一个正整数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.
编写函数: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
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