Python 3は桁の数字と10桁の数字のマッチングを実現して、その積は不変です。
二桁の数字13と62は興味深い性質を持っています。それらの桁の数字と10桁の数字を合わせて、その積は不変です。
すなわち
13*62
31*26
この性質に対する数の二桁の数を求めます。十桁と同じ桁はこの列にありません。
11、22のように繰り返されるのは、この列ではない。1362と6213のように。
余計なことを言わないで、今日のテーマを始めます。
Python逆転三桁の整数にはいくつかの方法がありますか?
これはleetcodeのプログラミングアルゴリズムの問題です。感じはやはり経典的です。今日は出して皆さんに分かち合います。3桁の正の整数を指定します。この整数の各数値を反転する必要があります。例えば、入力:123、出力:321。まず、次の答えを見ないでください。自分なら、いくつかのPython方式を考えて解決します。
それぞれいくつかの実現方法を説明します。
1、残りを取って整頓する方式
すなわち
13*62
31*26
この性質に対する数の二桁の数を求めます。十桁と同じ桁はこの列にありません。
11、22のように繰り返されるのは、この列ではない。1362と6213のように。
count = 0
for i in range(11, 100):
first_left = i // 10
first_right = i % 10
if first_left == first_right: # , for j in range(i + 1, 100)
continue # 11、22 13*62 62*13
for j in range(i + 1, 100): #
second_left = j // 10
second_right = j % 10
if second_left == second_right: #
continue
newfirst = first_right * 10 + first_left
newsecond = second_right * 10 + second_left
if i * j == newfirst * newsecond: # if
print('{} * {} = {} * {}'.format(i, j, newfirst, newsecond))
count += 1
print(count)
知識を補充します:Pythonは3桁の整数を反転して何種類の方法がありますか?余計なことを言わないで、今日のテーマを始めます。
Python逆転三桁の整数にはいくつかの方法がありますか?
これはleetcodeのプログラミングアルゴリズムの問題です。感じはやはり経典的です。今日は出して皆さんに分かち合います。3桁の正の整数を指定します。この整数の各数値を反転する必要があります。例えば、入力:123、出力:321。まず、次の答えを見ないでください。自分なら、いくつかのPython方式を考えて解決します。
それぞれいくつかの実現方法を説明します。
1、残りを取って整頓する方式
class Test:
def reverseInteger(self, number):
g = number%10 #
s = (int(number/10))%10 #
b = int(number/100) #
return g*100+s*10+b
if __name__ == "__main__":
ts = Test()
print (ts.reverseInteger(123)) # :321
2、スタックを使う方式
class Test:
def reverseInteger(self, number):
number = str(number) #
l = list(number)
result = ""
while len(l) > 0:
result += l.pop() #
return int(result)
if __name__ == "__main__":
ts = Test()
print (ts.reverseInteger(123)) # :321
3、スライスを使う方式
class Test:
def reverseInteger(self, number):
number=str(number)
result=number[::-1] #python
result=(int(result))
return result
if __name__ == "__main__":
ts = Test()
print (ts.reverseInteger(123))
4、整数は文字列を回転し、文字列を反転させてから整数を回転させます。
class Test:
def reverseInteger(self, x):
plus_minus = ""
reverse_x = ""
if x < 0:
plus_minus = "-"
x = -x
for i in str(x):
reverse_x = i + reverse_x
reverse_x = plus_minus + reverse_x
if int(reverse_x) > pow(2, 31) - 1 or int(reverse_x) < pow(-2, 31):
return 0
return int(reverse_x)
if __name__ == "__main__":
ts = Test()
print (ts.reverseInteger(123)) # :321
以上は私が共有する4つの方法ですが、他の方法がありますか?上のコードは全部自分でテストしました。直接使えます。みなさんに参考にしてもらいたいです。応援してください。