%%从1到一百万中随机取出一个正整数n,如果n是偶数,则n=n/2,如果n是基数,则n=3*n+1;
% 经过多次处理,使得n最后的取值为1时终止。求出这个处理链最长的那个数。
%举个例子:如n=3,那么处理链为 3-10-5-16-8-4-2-1,链长为8.
%2017/9/20,
%以下是代码实现:
num=zeros(1000000,1);
chain_1=zeros(1,1000000);
for ii=1:1000000
jj=ii;
count=1;
while 1
if (jj==1)
num(ii)=count;
break
end
if mod(jj,2)==0
count=count+1;
jj=jj/2;
else
count=count+1;
jj=jj*3+1;
end
end
end
max1=(max(num));
jj=max1;
count=1;
while 1
if (jj==1)
num(ii)=count;
chain_1(count)=jj;
% 经过多次处理,使得n最后的取值为1时终止。求出这个处理链最长的那个数。
%举个例子:如n=3,那么处理链为 3-10-5-16-8-4-2-1,链长为8.
%2017/9/20,
%以下是代码实现:
num=zeros(1000000,1);
chain_1=zeros(1,1000000);
for ii=1:1000000
jj=ii;
count=1;
while 1
if (jj==1)
num(ii)=count;
break
end
if mod(jj,2)==0
count=count+1;
jj=jj/2;
else
count=count+1;
jj=jj*3+1;
end
end
end
max1=(max(num));
jj=max1;
count=1;
while 1
if (jj==1)
num(ii)=count;
chain_1(count)=jj;