0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Reverse Integer --プログラミングの練習のメモ

Last updated at Posted at 2018-05-26

#Reverse Integer
問題:https://leetcode.com/problems/reverse-integer/description/

スクリーンショット 2018-05-26 13.37.07.png

##考え方:
例: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

	

また、コードについて改善すべき点がありましたら、ぜひ教えてください

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?