3X+1问题

论坛 期权论坛 脚本     
匿名技术用户   2020-12-28 04:43   335   0
%从任意一个正整数开始,重复对其进行下面的操作:
%如果这个数是偶数,把它除以 2 ;
%如果这个数是奇数,则把它扩大到原来的 3 倍后再加 1
%你会发现,序列最终总会变成 4, 2, 1, 4, 2, 1, … 的循环。
X=input('请输入一个数:');
count=0;
number=0;
while(1)
    if rem(X,2)==0
        X=X/2;
        count=count+1;
    else
        X=3*X+1;
        count=count+1;
    end
    if X==1
        number=number+1;
    end
    fprintf('%d  ',X);
    if rem(count,7)==0
        fprintf('\n')
    end
    if number==3
        break;
    end
end
fprintf('\n')

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP