Kiểm tra các chữ số của số nguyên dương có tăng dần từ trái sang phải
Bài viết hôm nay mình sẽ hướng dẫn các bạn cách kiểm tra các chữ số của một số có tăng dần từ trái sang phải bằng code C++
Giới thiệu bài toán kiểm tra số tăng giảm
Đề bài: Nhập vào một số nguyên dương n. Hãy kiểm tra xem các chữ số của số nguyên n có tăng dần từ trái sang phải hay không.
Ví dụ:
12346
là số có các chữ số tăng dần từ trái sang phải.12245
không là số thỏa mãn yêu cầu bài toán.
Ý tưởng:
- Ý tưởng của mình là mình sẽ lưu các chữ số của số nguyên
n
vào một mảngarr
sau đó tiến hành kiểm tra xem các số trong mảngarr
có giảm dần hay không. Vì ta lấy các chữ số của số nguyên n theo chiều đằng sau tới. Nên ta phải kiểm tra điều kiện ngược lại, tức số sau phải lớn hơn số trước. - Các bạn tiến hành lấy từng chữ số của một số nguyên
n
sau đó tiến hành lưu vào mảngarr
. Lưu ý phải dùng một biếnj
để làm chỉ số của mảng, sau mỗi lần lưu vào mảngarr
thì ta tăng giá trị của j lên một đơn vị. - Sau khi lưu các chữ số của số nguyên n vào
arr
thì các chữ số này sẽ được sắp xếp từ sau tới trước. Vì khi các bạn lấy số ra các bạn lấy từ đằng sau tới. - Kiểm tra xem các số trong mảng
arr
có giảm dần hay không, nếu có thì in ra"YES"
nếu không thì in ra"NO"
.
Code bài giải bằng C++
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
#include<iostream> using namespace std; int main(){ int n; int arr[20]; int j = 0; cout<<"Nhap vao so nguyen n: "; cin>>n; while(n!=0){ arr[j] = n % 10; n/=10; j++; } bool isbool = true; for(int i = 0; i< j; i++){ if(arr[i] <= arr[i+1] ) isbool = false; } if(isbool) cout<<"YES"; else cout<<"NO"; return 0; } |
Sau khi chương trình chạy ta có các kết quả sau
1 2 |
Nhap vao so nguyen n: 123 YES |
1 2 |
Nhap vao so nguyen n: 1234566 NO |
1 2 |
Nhap vao so nguyen n: 321 NO |
Bài viết mình đến đây là kết thúc. Cám ơn các bạn đã theo dõi !