欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【MATLAB】角谷猜想用MATLAB实现

程序员文章站 2024-03-17 10:05:34
...

Author: Manba Cople
专业:IOT
说明:记录和输出学习内容

问题

任何一个大于1的整数,如果是偶数,将其除以2;如果是奇数,将其乘以3再加1,反复运算。试问:有使这个过程不中止的正整数么?编程验证。

算法流程图

【MATLAB】角谷猜想用MATLAB实现

代码

close all;
clear;clc;
fprintf('请输入大于1的整数:\n');
n = input('n=');
flag = 0;                        % 记录循环次数
while (n > 1) && (n == floor(n)) % 判断n值是否为大于1的整数
    if mod(n,2) == 0
        n = n/2;
    else
        n = n*3+1;
    end
    flag = flag+1;
end
if flag == 0
    error('n值为非大于1的整数!');
else
    fprintf('循环%g次\n',flag);
end