今天有人问我怎么用matlab判断回文数,我给出以下几个思路
思路一:利用数学模型判断
%author:zhuweijie_猪猪侠
%date:2019/09/03
%E-mail:2377389590@qq.com
%回文数
%根据数学模型判断是不是回文数
function hwshu(x)
if x>=0
str=num2str(x);%转换字符串
for i=1:length(str)%字符串长度
r(i)=str2double(str(i));%再转换为双精度
end
if length(r)==1%判断长度=1则是回文数-
disp('是回文数')
else
flag=0;
for j=1:floor(length(r)/2)
if r(j)==r(length(r)+1-j)%模型
flag=flag+1;
end
end
if flag==floor(length(r)/2)
disp('是回文数')
else
disp('不是回文数')
end
end
else
disp('参数输入错误,请重新输入')
end
end
思路二:利用回文数的数字的结构特点判断
%author:zhuweijie_猪猪侠
%date:2019/09/03
%E-mail:2377389590@qq.com
%回文数
%数字特征规律来判断是不是回文数
function hws(x)
if x>=0
str=num2str(x);%转换字符串
for i=1:length(str)%字符串长度
r(i)=str2double(str(i));%再转换为双精度
end
if length(r)==1%判断长度=1则是回文数-
disp('是回文数')
else
len=floor(length(r)/2);
%提取前一半数据
fro_num=r(1:len);
%提取后一半数据,然后逆转
aft_num=fliplr(r(length(r)-len+1:length(r)));
if fro_num==aft_num
disp('是回文数')
else
disp('不是回文数')
end
end
else
disp('参数输入错误,请重新输入')
end
end