Перебираем все числа от 1 до n и проверяем расположены ли цифры числа по возрастанию. Проверяя цифры числа слева – новая цифра должна быть меньше предыдущей (строка 12). Если же она больше или равна предыдущей, переходим на проверку следующего числа (строка 12 оператор break прекращает дальнейшую проверку цифр числа и выход в цикл for для проверки следующего числа. Если же очередная цифра (слева) меньше предыдущей (справа), то она становится предыдущей для проверки новой цифры (слева) (строка 13).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
Program A2_10; Var n,i,q,n1,a:integer; begin readln(n); for i:=1 to n do begin n1:=i; a:=10; while (n1<>0) do begin q:=n1 mod 10; if (q>=a) then break; a:=q; n1:=n1 div 10; end; if (n1=0) then write(i,' '); end; writeln; readln; end. |
// Program A2.10; #include <iostream>
using namespace std;
int main() { int n,i,q,n1,a; cin>>n; for(i=1;i<=n;i++) { n1=i; a=10; while(n1) { q=n1%10; if(q>=a)break; a=q; n1=n1/10; } if(n1==0) cout<<i<<" "; } cout<<endl; return 0; } |