[C++]Tìm chữ số lớn nhất của số nguyên dương N có CODE Mẫu

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ến tram, chuc = (n % 100) / 10 sẽ gán giá trị của chữ số hàng chục cho biến chuc, và donvi = n % 10 sẽ gán giá trị của chữ số hàng đơn vị cho biến donvi.
  • 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ả

Kết quả 1

Kết quả 2

Kết quả 3

Kết quả 4

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

Nguyễn Tiến Trường

Mình viết về những điều nhỏ nhặt trong cuộc sống, Viết về câu chuyện những ngày không có em