สมมติว่าเรามีตัวเลข n เราต้องตรวจสอบว่าการเกิดขึ้นของแต่ละหลักของ n นั้นน้อยกว่าหรือเท่ากับหลักนั้นเองหรือไม่
ดังนั้น หากอินพุตเป็น n =5162569 เอาต์พุตจะเป็น True ตามตัวเลขและความถี่ (5, 2), (1, 1), (6, 2) และ (9, 1) สำหรับทั้งหมด ความถี่จะน้อยหรือเท่ากับค่าหลัก
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
- สำหรับฉันในช่วง 0 ถึง 9 ทำ
- อุณหภูมิ :=n, cnt :=0
- ในขณะที่อุณหภูมิไม่ใช่ศูนย์ ให้ทำ
- ถ้า temp mod 10 เหมือนกับ i แล้ว
- cnt :=cnt + 1
- ถ้า cnt> i แล้ว
- คืนค่าเท็จ
- อุณหภูมิ :=ผลหารของ (อุณหภูมิ / 10)
- ถ้า temp mod 10 เหมือนกับ i แล้ว
- คืนค่า True
ตัวอย่าง
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
def solve(n): for i in range(10): temp = n cnt = 0 while temp: if temp % 10 == i: cnt += 1 if cnt > i: return False temp //= 10 return True s = 5162569 print(solve(s))
อินพุต
5162569
ผลลัพธ์
True