Bài viết ngày hôm nay mình sẽ hướng dẫn các bạn cách tìm chữ số lớn nhất của số nguyên dương n nhập từ bàn phím. Nào chúng ta cùng bắt đầu thôi !
Bài toán: Tìm chữ số lớn nhất của số nguyên dương n.
- Input
1234589
- Output
Chu so lon nhat la: 9
Ý tưởng tìm chữ số lớn nhất của số nguyên dương
- Ta sẽ khởi tạo một biến max có giá trị là 0, dùng để lưu giá trị của chữ số lớn nhất.
- Sau đó ta sẽ dùng một vòng lặp
while
để lấy ra lần lượt các chữ số của số nguyên dương n. Sau đó ta so sánh các chữ số đó với giá trị max. Nếu giá trị max nhỏ hơn thì ta gán cho max giá trị của chữ số đó. - Sau khi xét hết các chữ số đó thì ta tiến hành trả về giá trị của biến max. Tức là chữ số lớn nhất của số nguyên dương n.
Code tham khảo:
#include<iostream> #include<math.h> using namespace std; int numberMax(int n) { if (n == 0) return 0; /*Lay tri tuyet do cua so nguyen n*/ n = abs(n); int max = 0; while (n > 0) { int temp = n % 10; n /= 10; if (temp > max) max = temp; } return max; } int main() { int n; cout << "Nhap vao so nguyen n: "; cin >> n; cout << "Chu so lon nhat la: " << numberMax(n) << endl; system("pause"); return 0; }
Sau khi chạy ta có kết quả sau
Nhap vao so nguyen n: 1349 Chu so lon nhat la: 9
Từ bài toán trên ta có thể mở rộng ra thành bài toán hãy đếm số lượng chữ số lớn nhất của số nguyên dương n.
Giải bài toán đếm số lượng chữ số lớn nhất của số nguyên dương
Ý tưởng:
- Đầu tiên ta sẽ tìm ra chữ số lớn của số nguyên dương. Như trên chúng ta đã làm rồi.
- Khởi tạo một biến count có giá trị là 0.
- Sau đó tiến hành lấy ra các chữ số của số nguyên dương n, so sánh với giá trị trả về của hàm
numberMax
. Nếu bằng thì ta tăng giá trị của biến count lên một đơn vị.
Code tham khảo:
#include<iostream> #include<math.h> using namespace std; int numberMax(int n) { if (n == 0) return 0; /*Lay tri tuyet do cua so nguyen n*/ n = abs(n); int max = 0; while (n > 0) { int temp = n % 10; n /= 10; if (temp > max) max = temp; } return max; } int countNumber(int n) { int count = 0; int number = numberMax(n); while (n > 0) { int temp = n % 10; n /= 10; if (temp == number) count++; } return count; } int main() { int n; cout << "Nhap vao so nguyen n: "; cin >> n; cout << "Chu so lon nhat la: " << numberMax(n) << endl; cout << "So luong chu so lon nhat: " << countNumber(n) << endl; system("pause"); return 0; }
Sau khi chạy ta có kết quả sau
p vao so nguyen n: 12998 Chu so lon nhat la: 9 So luong chu so lon nhat: 2
Bài viết của mình đến đây là kết thúc. Cám ơn các bạn đã theo dõi !
Để lại một bình luận