#Reverse Integer
問題:https://leetcode.com/problems/reverse-integer/description/
##考え方:
例:123=>321、1459=>9541
それを達成するため、具体的な例で考えてみる
与えられた数字が1459の時、とりあえず、まず1の位の数9をゲットしたいですよね、
そのあとに、145から5をゲット、以下同様のようにゲットしていくと、最終的に9541が出てくるんじゃないかと
1459=>9,145
145=>5,14
14=>4
=>1
->9541
ここで、重要なのは、どのように9と145を与えられた数字1459から分割していくか、
それを以下の式で簡単に求めることができます
1459%10=9 #与えられた数字の1の位の数
1459/10=145 #次の計算に持っていける
ということで、このように9,5,4,1をゲットできることができます
それらをどのように正しい桁数で足していくか
1459=>9,145 # a=9,ans=9
145=>5,14 # a=5,ans=95=9*10+5
14=>4 # a=4,ans=954=95*10+4
=>1 # a=1,ans=9541=954*10+1
->9541
ここで、ansを返す結果とすると、毎回の計算で、
ans(n)=ans(n-1)*10+a(n)
になっていることがわかる。したがって、これに沿ってコードを書きましょ〜
def reverse(tar):
target=tar
ans=0
a=0
while(target%10!=0):#ループの終了条件
a=target%10
ans=a+ans*10
target=int(target/10)#整数であること
return ans
b=reverse(123)
print(b)#321
また、コードについて改善すべき点がありましたら、ぜひ教えてください