4.求所有的两个三位数的乘积中,最大的回文数。
解: 首先回文数是指反转之后仍然不变的数,eg: 121 , 343
然后这个题目求的是两个三位数的乘积,最大为 999*999=998001,则从998899这个数开始往前推,即找到998这个数进行求解。
答案:906609=993*913
首先是怎么求1000以下的回文数:
x=[];
j=1;
for i=10:1000
str=num2str(i); %数字转化成字符
if i= str2num(str(end:-1:1)) %判断是否回文
x(j)=i; %数组列出回文数
j=j+1;
end
end
disp(x)
解题目:
for i=998:-1:100
str=num2str(i);
num=str2num(strcat(str,str(3:-1:1))); %将100到998之间的数倒转以后和它们本身组合,形成回文数
x=find (rem(num,100:999)==0) ;
y=num/max (x);
if y<999
fprintf('num%d\n',num);
break;
end
end
num