Kiểm tra các chữ số của số nguyên dương n có tăng dần từ trái sang phải hay không trong Python và C++
Để kiểm tra xem các chữ số của số nguyên dương n
có tăng dần từ trái sang phải hay không, bạn có thể sử dụng một phương pháp đơn giản bằng cách sử dụng phép chia và so sánh các chữ số. Dưới đây là phương pháp chi tiết:
- Kiểm tra số nguyên dương: Đảm bảo rằng
n
là một số nguyên dương (lớn hơn 0). - Lấy chữ số cuối cùng và gán cho biến
prev_digit
: Sử dụng phép chian % 10
để lấy chữ số cuối cùng củan
và gán giá trị này cho biếnprev_digit
. Ban đầu, bạn có thể gánprev_digit
bằng 10 (một giá trị lớn hơn bất kỳ chữ số nào). - Lặp qua các chữ số còn lại của
n
: Sử dụng một vòng lặp để lặp qua các chữ số còn lại củan
. Trong mỗi vòng lặp, lấy chữ số cuối cùng củan
và so sánh nó vớiprev_digit
. Nếu chữ số hiện tại không lớn hơnprev_digit
, đánh dấu rằng không tăng dần và thoát khỏi vòng lặp. Nếu chữ số hiện tại lớn hơnprev_digit
, cập nhậtprev_digit
và tiếp tục lặp. - Kết luận kiểm tra: Sau khi kết thúc vòng lặp, kiểm tra xem đã kiểm tra qua tất cả các chữ số của
n
và không có chữ số nào không tăng dần. Nếu điều này đúng, thì sốn
có các chữ số tăng dần từ trái sang phải; ngược lại, nó không có các chữ số tăng dần.
Kiểm tra các chữ số của số nguyên dương n có tăng dần từ trái sang phải hay không trong Python
n = int(input("Nhập số nguyên dương n: ")) # Nhập số nguyên dương từ người dùng # Đảm bảo n là số nguyên dương if n <= 0: print("Vui lòng nhập số nguyên dương.") else: is_increasing = True # Biến kiểm tra sự tăng dần, ban đầu đặt là True prev_digit = 10 # Biến để lưu chữ số trước đó, ban đầu đặt là 10 (lớn hơn bất kỳ chữ số nào) while n > 0: digit = n % 10 # Lấy chữ số cuối cùng của n if digit >= prev_digit: is_increasing = False # Nếu có chữ số không tăng, đặt biến is_increasing thành False break prev_digit = digit # Lưu chữ số hiện tại để so sánh ở lần lặp tiếp theo n //= 10 # Loại bỏ chữ số cuối cùng của n if is_increasing: print("Các chữ số của số nguyên dương n tăng dần từ trái sang phải.") else: print("Các chữ số của số nguyên dương n không tăng dần từ trái sang phải.")
Trong ví dụ này:
- Bạn nhập số nguyên dương
n
từ người dùng và đảm bảo rằngn
là số nguyên dương (lớn hơn 0). - Chúng ta khởi tạo biến
is_increasing
để kiểm tra xem các chữ số củan
có tăng dần từ trái sang phải hay không, ban đầu đặt làTrue
. - Chúng ta sử dụng biến
prev_digit
để lưu chữ số trước đó và ban đầu đặt là 10 (lớn hơn bất kỳ chữ số nào). - Sử dụng một vòng lặp
while
để lặp qua từng chữ số củan
. Trong mỗi vòng lặp, chúng ta lấy chữ số cuối cùng củan
và so sánh nó vớiprev_digit
. Nếu có chữ số nào không tăng, chúng ta đặtis_increasing
thànhFalse
và thoát khỏi vòng lặp ngay lập tức. - Cuối cùng, chúng ta kiểm tra giá trị của
is_increasing
và in thông báo tương ứng về việc các chữ số củan
có tăng dần từ trái sang phải hay không.
Kiểm tra các chữ số của số nguyên dương n có tăng dần từ trái sang phải hay không trong C++
#include <iostream> int main() { unsigned int n; // Số nguyên dương n std::cout << "Nhập số nguyên dương n: "; std::cin >> n; // Nhập số nguyên dương từ người dùng // Đảm bảo n là số nguyên dương if (n <= 0) { std::cout << "Vui lòng nhập số nguyên dương." << std::endl; return 0; } bool is_increasing = true; // Biến kiểm tra sự tăng dần, ban đầu đặt là true int prev_digit = 10; // Biến để lưu chữ số trước đó, ban đầu đặt là 10 (lớn hơn bất kỳ chữ số nào) while (n > 0) { int digit = n % 10; // Lấy chữ số cuối cùng của n if (digit >= prev_digit) { is_increasing = false; // Nếu có chữ số không tăng, đặt biến is_increasing thành false break; } prev_digit = digit; // Lưu chữ số hiện tại để so sánh ở lần lặp tiếp theo n /= 10; // Loại bỏ chữ số cuối cùng của n } if (is_increasing) { std::cout << "Các chữ số của số nguyên dương n tăng dần từ trái sang phải." << std::endl; } else { std::cout << "Các chữ số của số nguyên dương n không tăng dần từ trái sang phải." << std::endl; } return 0; }