Другие языки программирования и технологии

Помогите решить задачу c++

Неубывающая последовательность цифр
Имя входного файла: стандартный ввод
Имя выходного файла: стандартный вывод
Ограничение по времени: 2 секунды
Ограничение по памяти: 64 мегабайта
Дано натуральное четырехзначное число. Определить, образуют ли цифры числа неубывающую
последовательность.
Формат входных данных
Вводится натуральное четырехзначное число.
Формат выходных данных

Вывести "YES если цифры числа образуют неубывающую последовательность, и "NO"в против-
ном случае.

Пример

стандартный ввод 1234 стандартный вывод YES
#include <iostream>
#include <string>
#include <cctype>
#include <limits>
using namespace std;
int main() {
setlocale(LC_CTYPE, "Russian");
do {
cout << "Вводится натуральное четырехзначное число: ";
char x, y = '0';
short n = 4;
string msg = "YES";
bool flag = true;
do {
cin >> x;
if (x != '0' && isdigit(x) && x >= y) y = x;
else {
cin.ignore(numeric_limits<streamsize>::max(), '\n');
msg = "NO";
flag = !flag;
break;
}
} while (--n);
if (flag) {
while (cin.peek() == ' ' || cin.peek() == '\t') cin.get();
if (cin.peek() != '\n') msg = "NO";
}
cout << msg << '\n';
} while (true);
}
ДК
Денис Киселев
64 395
Лучший ответ
опять та же задача
int num;
std::cin >> num;

int last = 9;
bool b = true;
while (num != 0) {
int current = num % 10;
if (current > last) {
b = false;
num = 0;
}
else
{
num /= 10;
last = current;
}
}
std::cout << (b ? "YES" : "NO");
--------
или так
int num;
std::cin >> num;

int last = 9;
int current;
while (((current = num % 10 ) <= last) && num) {
num /= 10;
last = current;
}
std::cout << (num ? "NO" : "YES");
Benjamin Bradutan
Benjamin Bradutan
25 445
#include iostream
#include string
using namespace std;

int main()
{
int a;
cin >> a;
for (int i = 0; i < to_string(a).length() - 1; i ++)
if (to_string(a)[i] <= to_string(a)[i + 1])
continue;
else
{
cout << "NO" << endl;
return 0;
}
cout << "YES" << endl;
return 0;
}
Дмитрий Боровик Постоянные повторяющиеся вызовы to_string с одним и тем же аргументом в цикле - жесть еще та...
Алексей Макеев А что мешает сразу вводить строку?
string a;
cin >> a;
for(int i=0;i<a.length()-1;i++)
итд