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

*grab popcorn* viết 19:08 ngày 30/09/2018

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]

Byn viết 19:06 ngày 30/09/2018

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?

Phạm Hoàng Tuấn viết 19:02 ngày 30/09/2018

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ả

while (n>=10)
{
        int donvi=n%10;
        n=n/10;
        if(donvi>n%10)
        {
            return false;
        }
}
reutrn true;

Duc Ha viết 19:10 ngày 30/09/2018
#include<stdio.h>
main()
{
  int n,cs1,cs2,i=0,k=0;
  printf("Nhap so n: ");
  scanf("%d",&n);
  cs1=n%10;
  n=n/10;
  while(n!=0) 
  {
    cs2=n%10;
    if(cs1>cs2) i=1;
    if(cs2>cs1) k=1;
    if(cs2==cs1) return printf("khong tang khong giam");
    cs1=cs2; n=n/10;
  } 
  if(i==1 && k==1) printf("Khong tang khong giam\n"); 
  if(i==1 && k==0) printf("Tang\n"); 
  if(i==0 && k==1) printf("Giam\n"); 
  if(i==0 && k==0) printf("Khong tang khong giam\n");
}
Duc Ha viết 19:10 ngày 30/09/2018

cảm ơn mn đã quan tâm.

Trịnh Minh Cường viết 19:15 ngày 30/09/2018

Lần sau bạn nhớ dùng Markdown để đăng code nhé ,nhìn sẽ đẹp và dễ nhìn hơn

Làm sao để có thể hiển thị syntax highlighting bằng markdown? Các bạn phải đánh dấu ``` như ví dụ dưới đây Chú ý, dấu ``` được tạo ra bởi nút nằm bên trái số 1 trên bàn phím, nút này sẽ là ~ khi bấm giữ Shift Ví dụ cho C Nội dung: ``` void main() { } ``` Và đừng quên ``` ở cuối Kết quả void main() { } Ví dụ cho Pascal Nội dung: ``` Program HelloWorld; Begin WriteLn('Hello world!') {no ";" is required after the last statement of a block - adding one adds a "null stateme…

Tiến Hân Tiến Hân viết 19:14 ngày 30/09/2018

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

Tri viết 19:09 ngày 30/09/2018

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

Lee Đức Tuyên viết 19:09 ngày 30/09/2018

#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”);
}

Bùi Văn Bằng viết 19:01 ngày 30/09/2018

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 =)

Bài liên quan
0