【MATLAB】角谷猜想用MATLAB实现
程序员文章站
2024-03-17 10:05:34
...
Author: Manba Cople
专业:IOT
说明:记录和输出学习内容
问题
任何一个大于1的整数,如果是偶数,将其除以2;如果是奇数,将其乘以3再加1,反复运算。试问:有使这个过程不中止的正整数么?编程验证。
算法流程图
代码
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
上一篇: 弗洛伊德算法(Floyd)求最短路径
下一篇: 弗洛伊德(Floyd)算法求最短路径