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

นับจำนวนตัวเลขที่ไม่มีเลขข้างเคียงซ้ำกัน

นับจำนวนค่าภายในช่วงที่ไม่มีเลขหลักฐานข้างเคียงที่เท่ากันเลย

ให้นับจำนวนจำนวนเต็มตั้งแต่ left ถึง right (รวมทั้งสองขอบเขต) ที่ไม่มีเลขหลักฐานข้างเคียงที่เท่ากันเลย โดยใช้รูปแบบเลขฐานสิบปกติและต้องไม่มีศูนย์นำหน้า ศูนย์และตัวเลขหลักเดียวทั้งหมดถือว่าเข้าเงื่อนไขนี้

ให้เขียนฟังก์ชัน counting_numbers(left, right)

อินพุต

left: ค่าต่ำสุดที่อนุญาต

right: ค่าสูงสุดที่อนุญาต

เอาต์พุต

ให้คืนค่าจำนวนตัวเลขที่เข้าเงื่อนไขข้างต้น

เงื่อนไข

0 ≤ left ≤ right ≤ 10¹⁸ ช่วงค่าที่กำหนดอาจกว้างเกินกว่าจะตรวจสอบทีละจำนวนได้

ตัวอย่าง

ตัวอย่างที่ 1
อินพุต:
left = 10
right = 15

ผลลัพธ์ที่คาดหวัง:
expected = 5
อินพุต:
long long left = 10;
long long right = 15;

ผลลัพธ์ที่คาดหวัง:
long long expected = 5;
อินพุต:
long left = 10;
long right = 15;

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

คำอธิบาย

มีเพียง 11 เท่านั้นที่มีเลขข้างเคียงซ้ำกัน อีกห้าตัวเลขที่เหลือเข้าเงื่อนไขทั้งหมด

ตัวอย่างที่ 2
อินพุต:
left = 0
right = 9

ผลลัพธ์ที่คาดหวัง:
expected = 10
อินพุต:
long long left = 0;
long long right = 9;

ผลลัพธ์ที่คาดหวัง:
long long expected = 10;
อินพุต:
long left = 0;
long right = 9;

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

คำอธิบาย

ทั้งสิบค่ามีเพียงหลักเดียว จึงไม่มีเลขข้างเคียงซ้ำกันเลย

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

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

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

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

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