matlab判断回文数的两种思路

今天有人问我怎么用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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

好玩的Matlab(NCEPU)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值