其实是一道作业题,在实现的过程中遇到了诸多问题。
先看题目:
小问是层层递进的,第三问答案包含了前两问的答案,因此在此只展现第三问的答案。
(完整源码见文末)
思路:
以1372731为例,最初我的想法是通过substring()提取前半段(137)与后半段(731)再将后半段颠倒过来和137比较是否相等。
按照这个思路,首先我们需要找出分段点,因此需要判断位数。
x=1
while(n %/%10**x != 0)
x=x+1
#为了方便阅览因此去掉了{}
这里采用了循环的方式,通过将待判断的数除以10,100,1000...,之后取整,看所得数是否为0位来判断位数,若为0循环停止,不为0则x=x+1且再循环。这样所得的x即位数。
然后通过将位数除2并取整得到分段点。
x_mean=x%/%2
取整是出于奇数位偶数位的考虑所采用,而因此在之后使用substring()进行位数选取的后半段上就需要分别采用+1与+2.