創建一個函式,從其輸入引數的數字中生成最大數
我是 python 的初學者,所以我需要一些幫助。
n = int(input("Enter a number: "))
def large(n):
a = n % 10
b = (n // 10) % 10
c = (n // 100) %10
d = (n // 1000) % 10
uj5u.com熱心網友回復:
我只會按降序對字串進行排序,然后轉換為 int
def largest(s):
return int(''.join(sorted(s, reverse=True)))
一些例子
>>> largest('123')
321
>>> largest('321')
321
>>> largest('102030')
321000
uj5u.com熱心網友回復:
可以通過按降序對數字進行排序來實作最大。您需要處理可變數量的數字,因此整數除法方法將不起作用。此外,如果用戶在他/她的數字串列中指定前導零,由于提前轉換為 int(),它們將被忽略。因此,該解決方案需要在將結果轉換為整數之前將輸入作為字串處理。
制作最小的有點微妙,因為您不能將零放在開頭(一旦轉換為 int,它們就會消失)。策略是在按升序對其他數字進行排序后在第二個位置插入零。
例如:
s = input("Enter a number (largest): ")
n = int(''.join(sorted(s,reverse=True))) # descending order
print("largest:",n)
s = ''.join(sorted(s)) # ascending order
z = s.count('0') # number of zeros
n = int(s[z:z 1] s[:z] s[z 1:]) # insert zeros at 2nd position
print("smallest",n)
示例運行:
Enter a number (largest): 20430
largest: 43200
smallest 20034
Enter a number (largest): 090143
largest: 943100
smallest 100349
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/342962.html
