算法创作 | 输出逆序数问题解决方法
问题描述示例:程序每次读入一个正三位数,输出按位逆序的数字。(请注意:当输入的数字含有结尾的0时,输出不应该带有前导的0。)输入:700输出:7或者输入:123输出:321解决方案读入三位正整数,要求输出逆序数可以想到三种不同方式的解法:三位正整数分别由个位、十位、百位共同构成,可以将百位取整转化为个位,之后再分别把之前的个位转化成百位,十位不变,之前的百位转化成个位即求得。用创建列表的方式,根据索引值来进行if条件的循环嵌套,嵌套循环次数较多(此方法效率较低)。根据索引值进行反向索引,最后一个元素索引值为-1。代码清单法1:n=int(input('请输入一个正三位数:’))g=n%10 #取余 个位s=n//10%10 #十位b=n//100 #取整 百位c=g*100+s*10+b #把之前的数逆序print('%d’%c)法2:x=input('请输入一个正三位数:’)t=list(x) #创建一个输入值x的列表a=int(x[0]) #输入三位数的第一个元素b=int(x[1]) #输入三位数的第二个元素c=int(x[2]) #输入三位数的第三个元素if c==0:if b==0:print(a) #特殊情况末尾两位为0时else:print(b,a,sep=’’) #特殊情况末尾一位为0时else:print(c,b,a,sep=’’) #正常情况逆序法3:n=input('请输入一个正三位数:’)print(int(n[::-1]))结语本文主要讲述解决数字逆序输出的问题,要做到熟练运用索引值的方法解决该类问题,解决数字逆序输出可以根据实际情况更改输出对象。这类型的题可以通过多种方法解决,当然还有其它的方法我没有想出来,第三种方法是最简单且效率最高的方法,第二种方法是我第一次做的时候想到的,所以绕了很多弯路,运行效率也大打折扣。在日后的学习过程中会根据知识的拓展研究更加简洁高效的解决方式。实习编辑:李欣容作者:邓斯丹稿件来源:深度学习与文旅应用实验室(DLETA)