30/09/2018, 17:01
Kiểm tra xem các chữ số của số nguyên dương n có giảm dần/ tăng dần từ trái sang phải không?
Chỉ dùng vòng lặp không dùng mảng nha.tks mọi người
Bài liên quan
Chỉ dùng vòng lặp không dùng mảng nha.tks mọi người
dùng phép trừ thôi. ‘3’
tăng dần thì a[i] - a[i-1] phải >0
giảm dần thì a[i] - a[i-1] phải <0.
ko dùng mảng thì dùng 2 biến a,b để lưu a[i] và a[i-1]
Người thảo luận để tìm ra cách giải hay cho một bài toán khó sẽ trở thành lập trình viên giỏi. Người hay hỏi bài tập thì không. Còn bạn thì sao?
Bạn có thể biến đổi bài toán thành kiểm tra các chữ số của số nguyên dương có tăng dần từ phải qua trái không? sẽ dễ làm hơn đó
Mã giả
cảm ơn mn đã quan tâm.
Lần sau bạn nhớ dùng Markdown để đăng code nhé ,nhìn sẽ đẹp và dễ nhìn hơn
Mình làm theo cách của bạn nhưng không hiểu vì sao lại báo lỗi về thuật toán làm bằng mảng. Ai biết về vấn đề này chỉ mình với
cho mình hỏi về cái mà cs1=cs2 là sao vậy bạn mình không hỉu lắm
#include
using namespace std;
void KT(int n)
{
int st = n % 10, ss, kt1 = 0, kt2 = 0;
n = n / 10;
while (n != 0)
{
ss = n % 10;
if (st < ss) kt1 = 1;
if (st > ss) kt2 = 1;
st = ss;
n = n / 10;
}
if (kt1 == 0 && kt2 == 1) cout << “La so tang dan \n”;
if (kt2 == 0 && kt1 == 1) cout << “La so giam dan \n”;
if (kt1 == 1 && kt2 == 1|| kt1 == 0 && kt2 == 0) cout << “La so khong tang va khong giam \n”;
}
int main()
{
int n;
cout << “Nhap vao so nguyen duong n(n>0):”;cin >> n;
if (n < 1)
{
do { cout << “Vui long nhap dung n(n>0):”;cin >> n; } while (n < 1);
}
KT(n);
system(“pause”);
}
gán giá trị cs2 vào cs1 và tiếp tục vòng lặp thôi.
vd : 54321
cs1 = 1 ; cs2 = 2
cs1 = 2 ; cs2 = 3 và tiếp tục như vậy.
Theo mình là vậy =)