Bài 29:
Xác định bài toán:
+/ Input: Cho N là số tự nhiên 3 chữ số
+/ Output: Tìm hoán vị chữ số có giá trị lớn nhất của N. ( Ví dụ : Với N là 213 thì ta có các hoán vị là 123, 231, 312, 321, 132 và 321 là hoán vị có giá trị lớn nhất)
Thuật toán:
Tách các chữ số của N lưu vào a, b, c:
+/ Nếu a < b thì hoán đổi vị trí của a và b
+/ Nếu b < c thì hoán đổi vị trí của b và c
Thực hiện xong 2 lần hoán đổi này, giá trị thu được có thể chưa lớn nhất nên ta cần thực hiện so sánh thêm 1 lần nữa:
+/ Nếu a < b thì hoán đổi vị trí của a và b
+/ Nếu b < c thì hoán đổi vị trí của b và c
Chương trình:
N = int(input())
a = N//100
b = (N//10)%10
c = N%10
if a<b:
a,b=b,a
if b<c:
b,c=c,b
if a<b:
a,b=b,a
if b<c:
a,c=c,b
N = a*100 + b*10 + c
print(N)
Thử:
N=1
=> N=100