Biết một số được gọi là số bậc thang nếu biểu diễn thập phân của nó có nhiều hơn một chữ sốđồng thời theo chiều từ trái qua phải, chữ số đứng sau không nhỏ hơn chữ số đứng trước. Ví dụ: 123,1478,1269,1778,… là những số bậc thang, nhưng 8,132,1894,... không phải là những số bậc thang. Nhập vào một mảng gồm n(n≤1000) số dương a1,a2,…,an(ai≤109). Hãy đếm xem trong mảng có bao nhiêu số bậc thang.

2 câu trả lời

#include <bits/stdc++.h>
#define ll long long
#define ull unsigned long long
using namespace std;

ll check(string s) {
 ll cnt = 0;
 for(int i = 0; i < s.size(); ++i) {
  if((int)s[i + 1] > (int)s[i]) ++cnt;
 }
 return cnt;
}

int main() {
 ios::sync_with_stdio(0);
 cin.tie(0);cout.tie(0);
 int n;
 cin >> n;
 string s;
 ll cnt = 0;
 for(int i = 0; i < n; ++i) {
  cin >> s;
  if(s.size() > 1 & check(s)) {
   ++cnt;
   //cout << s[i + 1] << " " << s[i] << " ";
  }
 }
 //cout << "\n";
 cout << cnt;
}

#include <iostream>
using namespace std;

bool check(int n) {
 while (n >= 10) {
  int s = n % 10; 
  n = n / 10;
  if (s < (n % 10)) return false;
 }
 return true;
}
int main() {
    long long n;
    long long a[10000];
    cin >> n;
    long long d = 0;
    for (int i = 1; i <= n; i++) {
  cin >> a[i];
  if (a[i] > 10 && check(a[i])) ++d;
    }
    cout << d;
}

Câu hỏi trong lớp Xem thêm