โจทย์ทั้งหมด
ปานกลาง 0 ข้อที่แก้แล้ว อัตราผ่าน 0%

ลบตัวเลขเพื่อให้ได้ศูนย์

ใช้การลบตัวเลขให้น้อยที่สุดเพื่อให้ได้ศูนย์

ในแต่ละขั้นตอน ให้เลือกเลขหลักฐานสิบที่ไม่เป็นศูนย์ซึ่งมีอยู่ในตัวเลขปัจจุบัน แล้วลบเลขหลักนั้นออก ตัวเลขที่เลือกจะมาจากค่าปัจจุบันหลังจากแต่ละขั้นตอน ค้นหาจำนวนขั้นตอนน้อยที่สุดที่ต้องใช้เพื่อให้ได้ศูนย์

เขียนฟังก์ชัน removing_digits(n)

อินพุต

n: จำนวนเริ่มต้นที่เป็นบวก

เอาต์พุต

คืนค่าจำนวนขั้นตอนการลบที่น้อยที่สุด

เงื่อนไข

1 ≤ n ≤ 1,000,000 การลบศูนย์ไม่ถือว่าเป็นการเดินหมากที่มีประโยชน์และไม่อนุญาตให้ทำ

ตัวอย่าง

ตัวอย่างที่ 1
อินพุต:
n = 14

ผลลัพธ์ที่คาดหวัง:
expected = 3
อินพุต:
long long n = 14;

ผลลัพธ์ที่คาดหวัง:
long long expected = 3;
อินพุต:
long n = 14;

ผลลัพธ์ที่คาดหวัง:
long expected = 3;

คำอธิบาย

14 → 10 → 9 → 0 ใช้สามขั้นตอน ไม่สามารถลบเลขหลักใดในขั้นแรกเพื่อให้ถึงศูนย์ได้ในสองขั้นตอน

ตัวอย่างที่ 2
อินพุต:
n = 7

ผลลัพธ์ที่คาดหวัง:
expected = 1
อินพุต:
long long n = 7;

ผลลัพธ์ที่คาดหวัง:
long long expected = 1;
อินพุต:
long n = 7;

ผลลัพธ์ที่คาดหวัง:
long expected = 1;

คำอธิบาย

ลบเลขหลักเดียวที่มีอยู่คือ 7 เพื่อให้ได้ 0 ทันที

แหล่งอ้างอิง

โจทย์นี้ปรับให้เหมาะกับ CodeUtility กรุณาทำตามคำชี้แจงและข้อจำกัดด้านบน

เรียนรู้จากคนอื่น

แนวทางจากชุมชน

ยังไม่มีวิธีทำที่เผยแพร่ ลองแก้โจทย์นี้เพื่อแชร์วิธีแรก