ด้วยจำนวนที่ไม่เป็นลบ ภารกิจคือการหาตัวเลขที่เล็กที่สุด
ตัวอย่าง
ป้อนข้อมูล:
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'