Bài viết dưới đây sẽ giúp chúng ta thực hiện thuật toán tìm chữ số lớn nhất của một số nguyên dương n c++. Sau đây hãy cùng TTnguyen tìm hiểu qua ngôn ngữ lập trình C++ nhé!
Xem thêm: Bài 4: (TH-CSLT-06): Viết chương trình tính lương cho nhân viên theo các yêu
cầu sau:
– Nhập tên của người được lĩnh lương.
– Nhập tiền công 1 ngày, số ngày làm việc trong tháng, và số tiền đã tạm ứng.
1. Đề bài tìm chữ số lớn nhất của số nguyên dương N ba chữ số
Bài 5 (TH-CSLT-03): Viết chương trình nhập vào một số nguyên N gồm ba chữ số. Xuất ra màn hình chữ số lớn nhất ở vị trí nào?
Hay: viết chương trình nhận vào số nguyên dương n và in ra chữ số có giá trị lớn nhất của n .
Ví dụ: N=497. Chữ số lớn nhất nằm ở hàng chục (chữ số 9)
2. Mô tả thuật toán tìm chữ số lớn nhất của có nguyên dương n c++
- Vòng lặp
do...while
được sử dụng để yêu cầu người dùng nhập một số có 3 chữ số. Điều kiện kiểm tra là(n < 100 || n > 999)
. Nếu số nhập vào không nằm trong khoảng từ 100 đến 999, vòng lặp sẽ tiếp tục chạy cho đến khi số hợp lệ được nhập vào.
do { cout << "nhap n co 3 chu so:"; cin >> n; } while (n < 100 || n > 999); Gán các giá trị hàng đơn vị, hàng chục và hàng trăm //gan gia tri donvi, chuc, tram tram = n / 100; chuc = (n % 100) / 10; donvi = n % 10; max = tram;
- Khi số hợp lệ được nhập vào, chương trình sẽ tiến hành tách số đó thành các chữ số riêng lẻ. Điều này được thực hiện bằng cách sử dụng các phép toán chia và chia lấy dư. Ví dụ:
tram = n / 100
sẽ gán giá trị của chữ số hàng trăm cho biếntram
,chuc = (n % 100) / 10
sẽ gán giá trị của chữ số hàng chục cho biếnchuc
, vàdonvi = n % 10
sẽ gán giá trị của chữ số hàng đơn vị cho biếndonvi
. - Kiểm tra giá trị của
max
để xác định vị trí chữ số lớn nhất và in ra thông báo tương ứng: Cả ba chữ số bằng nhau; Chữ số lớn nhất ở hàng chục; Chữ số lớn nhất ở hàng trăm; Chữ số lớn nhất ở hàng đơn vị
if (tram == chuc && tram == donvi) cout << "ba chu so bang nhau"; else { if (chuc > max && donvi > max) { if (chuc > donvi) { max = chuc; } else max = donvi; } else { if (chuc > tram) max = chuc; if (donvi > tram) max = donvi; } if (max == tram) cout << "chu so lon nhat o hang tram"; else if (max == chuc) cout << "chu so lon nhat o hang chuc"; else cout << "chu so lon nhat o hang don vi"; }
3. Code tìm chữ số lớn nhất của số nguyên dương n
#include<bits/stdc++.h> using namespace std; int main() { int n, tram, chuc, donvi, max; //nhap den khi n la so co 3 chu so thi thuc hien tiep do { cout << "nhap n co 3 chu so:"; cin >> n; } while (n < 100 || n > 999); //gan gia tri donvi, chuc, tram tram = n / 100; chuc = (n % 100) / 10; donvi = n % 10; max = tram; //thuc hien so sanh if (tram == chuc && tram == donvi) cout << "ba chu so bang nhau"; else { if (chuc > max && donvi > max) { if (chuc > donvi) { max = chuc; } else max = donvi; } else { if (chuc > tram) max = chuc; if (donvi > tram) max = donvi; } if (max == tram) cout << "chu so lon nhat o hang tram"; else if (max == chuc) cout << "chu so lon nhat o hang chuc"; else cout << "chu so lon nhat o hang don vi"; } }
4.Kết quả
Mở rộng bài toán
Viết chương trình nhập vào số nguyên N. Xuất ra màn hình chữ số lớn nhất(Tìm chữ số lớn nhất của số nguyên dương N)
Tương tự bài toán tìm số lớn nhất của số nguyên dương N có 3 chữ số. Ta chỉ cần thay đổi thuật toán so sánh if thành do…while như sau
do { i = n % 10; if (i > max) { max = i; } } while (n /= 10);
Sau khi kết thúc vòng lặp ta được chữ sô lớn nhất là max.
Bài tiếp theo:
Bài 6 (TH-CSLT-07): Viết chương trình nhập vào toạ độ 2 điểm P, Q với P(xP, yP), Q(xQ,yQ)
a.In ra màn hình phương trình đường thẳng đi qua 2 điểm PQ.
b.Cho điểm I có toạ độ I(xI, yI). Hãy cho biết điểm I có thuộc đường thẳng đi qua 2 điểm PQ hay không?
Tải full tài liệu thực hành C/C++
Trên đây ttnguyen.net đã đưa ra cách giải bài toán tìm chữ số lớn nhất của một số nguyên dương n ngôn ngữ lập trình C++. Mình rất vui khi các bạn tham khảo bài viết của mình. Nếu có bất kì thắc mắc hoặc nhầm lẫn gì, hãy đừng ngần ngại liên hệ với mình nhé. Chúc các bạn thành công