ด้วยจำนวนที่ไม่เป็นลบ ภารกิจคือการหาตัวเลขที่เล็กที่สุด
ตัวอย่าง
ป้อนข้อมูล:
N = 154870
ผลลัพธ์:
0
คำอธิบาย: ในหมายเลขที่กำหนด '154870' ตัวเลขที่น้อยที่สุดคือ '0'
แนวทางในการแก้ปัญหานี้
วิธีที่ง่ายที่สุดในการแก้ปัญหานี้คือดึงตัวเลขหลักสุดท้ายในตัวเลขที่กำหนดโดยใช้ส่วนที่เหลือ ทฤษฎีบท . ขณะสำรวจหมายเลข เราจะตรวจสอบว่าตัวเลขที่แยกออกมานั้นน้อยกว่าหลักสุดท้ายหรือไม่ จากนั้นส่งคืนผลลัพธ์
- จดตัวเลข น เป็นอินพุต
- ฟังก์ชันจำนวนเต็ม smallest_digit(int n) รับ 'n' เป็นอินพุตและส่งกลับตัวเลขที่น้อยที่สุดในตัวเลขที่กำหนด
- ตอนนี้เริ่มต้น min เป็นตัวเลขสุดท้ายของตัวเลขที่ระบุ
- วนซ้ำตัวเลขและตรวจสอบว่าตัวเลขที่แยกออกมานั้นน้อยกว่าจำนวนขั้นต่ำหรือไม่ หากเป็นจริง ให้อัปเดตจำนวนขั้นต่ำและส่งคืนผลลัพธ์
- ลบตัวเลขสุดท้ายออกทีละ n/10 และตรวจสอบว่ามีตัวเลขอื่นที่น้อยกว่าหลักปัจจุบันหรือไม่
- ส่งคืนผลลัพธ์
ตัวอย่าง
#include <iostream> using namespace std; int smallest_digit(int n) { int min = n % 10; //assume that last digit is the smallest n /= 10; //to start from the second last digit while (n != 0) { if (min > n % 10) min = n % 10; n /= 10; } return min; } int main() { int n = 154870; cout << smallest_digit(n); return 0; }
การเรียกใช้โค้ดด้านบนจะสร้างผลลัพธ์เป็น
ผลลัพธ์
0
คำอธิบาย :ในตัวเลขที่กำหนด '154870' ตัวเลขที่น้อยที่สุดคือ '0'