iİnformatikanın məktəbdə tədrisi

2-10r

Найти все натуральные числа, не превосходящие заданного N, десятичная запись которых есть строго возрастающая последовательность цифр.

Перебираем все числа от 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;

}