主要内容

处理大整数来解决196年问题

这个例子展示了如何使用大整数和小数表示使用符号数学工具箱™。

回文

字符串被称为回文如果它向后读时是一样的。一个正整数称为回文如果其十进制表示法是一个回文。例如,191年、313年和5885年都是回文。

考虑下面的算法

  • 开始任何正整数 N 并将它添加到它的镜像。

  • 重复这个步骤与结果,直到你获得一个回文数。

例如,让N = 89;然后第一个3迭代给…

8 9 + 9 8 = 1 8 7

1 8 7 + 7 8 1 = 9 6 8

9 6 8 + 8 6 9 = 1 8 3 7

最后24迭代后你将到达回文8813200023188。

N =符号(89);k = 0:100 s1 = char (N);s2 = fliplr (s1);如果比较字符串(s1, s2) disp ([在迭代中完成的num2str (k)])打破结束N = N +符号(s2);disp (N)结束

                 
                  
                   
                    
                     187年
                   
                   
                    信谊(187)
                  
                 

                 
                  
                   
                    
                     968年
                   
                   
                    信谊(968)
                  
                 

                 
                  
                   
                    
                     1837年
                   
                   
                    信谊(1837)
                  
                 

                 
                  
                   
                    
                     9218年
                   
                   
                    信谊(9218)
                  
                 

                 
                  
                   
                    
                     17347年
                   
                   
                    信谊(17347)
                  
                 

                 
                  
                   
                    
                     91718年
                   
                   
                    信谊(91718)
                  
                 

                 
                  
                   
                    
                     173437年
                   
                   
                    信谊(173437)
                  
                 

                 
                  
                   
                    
                     907808年
                   
                   
                    信谊(907808)
                  
                 

                 
                  
                   
                    
                     1716517
                   
                   
                    信谊(1716517)
                  
                 

                 
                  
                   
                    
                     8872688
                   
                   
                    信谊(8872688)
                  
                 

                 
                  
                   
                    
                     17735476
                   
                   
                    信谊(17735476)
                  
                 

                 
                  
                   
                    
                     85189247
                   
                   
                    信谊(85189247)
                  
                 

                 
                  
                   
                    
                     159487405
                   
                   
                    信谊(159487405)
                  
                 

                 
                  
                   
                    
                     664272356
                   
                   
                    信谊(664272356)
                  
                 

                 
                  
                   
                    
                     1317544822
                   
                   
                    信谊(1317544822)
                  
                 

                 
                  
                   
                    
                     3602001953
                   
                   
                    信谊(3602001953)
                  
                 

                 
                  
                   
                    
                     7193004016
                   
                   
                    信谊(“7193004016”)
                  
                 

                 
                  
                   
                    
                     13297007933
                   
                   
                    信谊(“13297007933”)
                  
                 

                 
                  
                   
                    
                     47267087164
                   
                   
                    信谊(“47267087164”)
                  
                 

                 
                  
                   
                    
                     93445163438
                   
                   
                    信谊(“93445163438”)
                  
                 

                 
                  
                   
                    
                     176881317877
                   
                   
                    信谊(“176881317877”)
                  
                 

                 
                  
                   
                    
                     955594506548
                   
                   
                    信谊(“955594506548”)
                  
                 

                 
                  
                   
                    
                     1801200002107
                   
                   
                    信谊(“1801200002107”)
                  
                 

                 
                  
                   
                    
                     8813200023188
                   
                   
                    信谊(“8813200023188”)
                  
                 
在迭代完成24

196年问题

算法终止每吗 N 吗?

问题仍然是开放的,回文爱好者已经投资很多CPU年 N = 1 9 6 情况使其名称的问题。为了玩这个问题在MATLAB™,象征性的整数是有用的,因为他们的规模是无限的。使用的函数信谊符号整数转换字符串的小数位数,和字符(不num2str)将回来。

著名的调查 N = 1 9 6 情况下产生的真正的巨大的数字。看到有多少小数位数整数,简单地使用log10:

N =符号(196);k = 0:1000 s1 = char (N);s2 = fliplr (s1);N = N +符号(s2);结束disp ([数字后的数量num2str (k)的迭代:char(装天花板(log10 (N)))));
号码1000次迭代后的数字:411