codekata 2. 数値反転
8941 ワード
パラメータとして整数をreverse関数として受信します.その数字をひっくり返して返してください.
問題の特定
要求事項:数字の順序を逆さにする.
制限事項:負数の場合、逆さまの結果で
入力:数値
Output:順序が逆の数字
複文を書きますか.
0を省略した部分は、文字列タイプをintタイプに変換したときに自動的に解決されます.
私の考え方まずintタイプは順序をどのように変更するか分からない.したがって、 rangeを反転し、繰り返し文を実行します. の空の文字列変数に順次追加します. の負数であれば、一番前の文字(-)を最後に貼り付けます. int関数は、前の0が自動的に解決されます. 1つ目の方法:繰り返し文と逆関数
文字列を含む変数(ここでは
まさかグライダー技術.負数については、
2つ目の方法と似ていますが、値引を吐く
stringタイプに変換せずに、繰り返し文と演算子のみを使用して解く方法があります.数値の残りの演算子(%)と除算演算子(//)を使用します.
繰り返されるたびに、結果は既存の結果に10の値を乗算し、既存の値を1桁上げ、残りの10を加算します.そうなると、数字の中で数字をひっくり返すしかない.
第4の方法と同様であるが,コードをより短くするためにabs関数を用いた.は既存の考えに閉じ込められているようだ.必ず複文を書かなければならないと思います.だから皆さんの解題の仕方に耳を傾けることが大切です.方法. Pythonの内蔵関数をさらに理解する必要があります.
問題の特定
要求事項:数字の順序を逆さにする.
制限事項:負数の場合、逆さまの結果で
-
が一番前になるはずです.なお、0が一番前にある場合は0を省略する.入力:数値
Output:順序が逆の数字
複文を書きますか.
0を省略した部分は、文字列タイプをintタイプに変換したときに自動的に解決されます.
私の考え方
str
関数を使用してstringに変換します.range
関数に3番目のパラメータ値-1
を加え,逆方向に行うことができるが,新学的reversed
関数を用いた.文字列を含む変数(ここでは
result
)を作成し、繰り返し文に順番に挿入します.def reverse(number):
if number < 0:
str_num = str(number)[1:] + str(number)[0]
else:
str_num = str(number)
result = ""
for c in reversed(str_num):
result += c
return int(result)
2つ目の方法:スライドまさかグライダー技術.負数については、
-
シンボルをstring全体からスライドさせ、最後にint
関数の結果値を負数にします.def reverse(number):
sign = 1
if number < 0:
sign = -1
number = number * -1
result = int(str(number)[::-1]) * sign
return result
3つ目の方法:スライドとabs関数2つ目の方法と似ていますが、値引を吐く
abs
関数を使用すると、負数でも正数でも入ることができ、条件文がきれいになります.def reverse(number):
result = str(abs(number))[::-1]
if number < 0:
result * -1
return result
第四の方法:残りの性質を利用するstringタイプに変換せずに、繰り返し文と演算子のみを使用して解く方法があります.数値の残りの演算子(%)と除算演算子(//)を使用します.
繰り返されるたびに、結果は既存の結果に10の値を乗算し、既存の値を1桁上げ、残りの10を加算します.そうなると、数字の中で数字をひっくり返すしかない.
def reverse(number):
sign = 0
if number < 0:
sign = -1
number = number * -1
else:
sign = -1
result = 0
while number != 0:
result = result * 10 + (number % 10)
number = number // 10
return result * sign
第5の方法:残りの性質とabs関数第4の方法と同様であるが,コードをより短くするためにabs関数を用いた.
def reverse(number):
result = 0
abs_num = abs(number)
while abs_num != 0:
result = result * 10 + (abs_num % 10)
abs_num = abs_num // 10
if number < 0:
result *= -1
return result
思考と質問reversed
またはabs
関数.Reference
この問題について(codekata 2. 数値反転), 我々は、より多くの情報をここで見つけました https://velog.io/@wonseok2877/codekata-2テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol