matlab中寻找回文数问题,程序如下,运行不了,求高手修改找错!要求:寻找11-999之间的数m,并且它满足m、m2=m*m、m3=m*m*m均为回文数,并把m、m2、m3输出.满足上述要求的数例如m=11、m2=121、m3=1331.程序
来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/25 04:21:32
matlab中寻找回文数问题,程序如下,运行不了,求高手修改找错!要求:寻找11-999之间的数m,并且它满足m、m2=m*m、m3=m*m*m均为回文数,并把m、m2、m3输出.满足上述要求的数例如m=11、m2=121、m3=1331.程序
matlab中寻找回文数问题,程序如下,运行不了,求高手修改找错!
要求:寻找11-999之间的数m,并且它满足m、m2=m*m、m3=m*m*m均为回文数,并把m、m2、m3输出.满足上述要求的数例如m=11、m2=121、m3=1331.
程序:
for m=11:1:999
n=floor(log(m))+1; %求数字的位数
v=mod(floor(m./10.^(n-1:-1:0)),10);
w=fliplr(v);
m2=m*m;
n2=floor(log(m2))+1;
v2=mod(floor(m2./10.^(n2-1:-1:0)),10);
w2=fliplr(v);
m3=m*m*m;
n3=floor(log(m))+1;
v3=mod(floor(m3./10.^(n3-1:-1:0)),10);
w3=fliplr(v);
if all(v==w)&&all(v2==w2)&&all(v3==w3)
disp(m);
disp(m2);
disp(m3);
end
end
matlab中寻找回文数问题,程序如下,运行不了,求高手修改找错!要求:寻找11-999之间的数m,并且它满足m、m2=m*m、m3=m*m*m均为回文数,并把m、m2、m3输出.满足上述要求的数例如m=11、m2=121、m3=1331.程序
clc
clear
for m=11:999
strm=num2str(m);
if m==str2num(strm(end:-1:1))
strmm=num2str(m^2);
if m^2==str2num(strmm(end:-1:1))
strmmm=num2str(m^3);
if m^3==str2num(strmmm(end:-1:1))
disp(['m=',strm]);
disp(['m*m=',strmm]);
disp(['m*m*m=',strmmm]);
end
end
end
end
%输出结果:
m=11
m*m=121
m*m*m=1331
m=101
m*m=10201
m*m*m=1030301