此示例显示如何使用符号数学工具箱™使用大型整数及其十进制表示。
如果在向后读取时,则表示字符串称为parindrome。如果其十进制表示是回文,则正整数被称为回文。例如,191,313和5885都是回文。
考虑以下算法
从任何正整数开始 并将其添加到其镜像上。
通过生成的数字重复此步骤,直到获得PAPINDROME。
例如,让n = 89;然后是前3个迭代给...
最终在24次迭代之后,您将到达Parindrome 8813200023188。
n = sym(89);为了k = 0:100 s1 = char(n);s2 = pliplr(s1);如果Strcmp(S1,S2)DISP(['在迭代中完成'num2str(k)])休息结尾n = n + sym(s2);DISP(n)结尾
在迭代24完成
算法是否终止了每个 还是
问题仍然是开放的,Palindrome Aficionados已经投入了许多CPU岁月
案例给出了这个问题它的名字。为了在Matlab™中发挥此问题,符号整数是有用的,因为它们的大小是无限的。使用功能轶事
将十进制数字的字符串转换为符号整数,以及char
(不是num2str.
!)转换回来。
调查着名
案例产生真正巨大的数字。要查看整数有多少十进制数字,只需使用log10.
:
n = sym(196);为了k = 0:1000 s1 = char(n);s2 = pliplr(s1);n = n + sym(s2);结尾DISP([''数字后'num2str(k)'迭代:'Char(CEIL(log10(n)))]);
1000次迭代后的数字数:411