Tìm số kì diệu nhỏ hơn số N nguyên dương cho trước. Ta tạm định nghĩ số kì diệu là số bằng hiệu của số lớn nhất (tạo ra bởi các chữ số của nó) với số nhỏ nhất (tạo ra bởi các chữ số của nó) . VD 495 = 954 - 459. Ai chỉ cho em hướng được ko ạ.
Cần hướng thực hiện bài toán số kì diệu?
tách số của bạn ra thành mảng rồi sort tăng tạo thành số lớn nhất. sort giảm tạo thành số nhỏ nhất và trừ 2 đứa nó.
Nó phải chia hết cho 9 trước.
Giờ chia ra 2 vd:
n có 3 chữ số thì nếu n thỏa t/c thì n sẽ có dạng (100-1)a - (100-1)c.
n có 4 chữ số thì n có dạng 999(a - c) + 99(b - d). Cứ thế mà triển 
1 Like
Các số này gọi là Kaprekar constants. Số lượng của chúng khá ít, và tuỳ vào limit của N, ta có thể giải quyết bài này bằng mảng hằng.
List Kaprekar constants: Link. Có vẻ như có quy luật.
P/s: Bài này chạy trâu chắc cháy máy.
2 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?