Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Program Laba_2_2;
- {$APPTYPE CONSOLE}
- Uses
- System.SysUtils;
- Const
- MAX_ARRAY_SIZE = 100;
- Type
- TArr = Array Of Integer;
- Procedure OutputTaskInfo();
- Begin
- Writeln('Данная программа находит наименьшее натуральное n по следующему правилу: ');
- Writeln('Если последнюю цифру некоторого натурального числа n перенести и ');
- Writeln('поставить перед первой цифрой этого числа, то получится число, в два раза больше
- n.');
- End;
- Function FindMinimalNumber(): TArr;
- Const
- FACTOR = 2;
- Var
- Number: TArr;
- Count, Addition, CurrentNumber, FlagIsCorrect, I: Integer;
- Begin
- Writeln('Производятся вычисления...');
- CurrentNumber := 2;
- Addition := 0;
- Count := 0;
- FlagIsCorrect := 0;
- SetLength(Number, MAX_ARRAY_SIZE);
- While FlagIsCorrect < 1 Do
- Begin
- Inc(Count);
- CurrentNumber := CurrentNumber * FACTOR;
- CurrentNumber := CurrentNumber + Addition;
- If CurrentNumber < 10 Then
- Addition := 0;
- If CurrentNumber > 9 Then
- Begin
- CurrentNumber := CurrentNumber - 10;
- Addition := 1;
- End;
- Number[Count] := CurrentNumber;
- if (CurrentNumber = 2) And (Addition = 0) Then
- Begin
- Inc(FlagIsCorrect);
- End;
- End;
- FindMinimalNumber := Number;
- End;
- Procedure OutputResultInConsole(ResultArr: TArr);
- Var
- Count, I, FlagIsCorrect: Integer;
- Begin
- Writeln('Наименьшим n является: ');
- I := Length(ResultArr);
- FlagIsCorrect := 0;
- While FlagIsCorrect < 1 Do
- Begin
- If ResultArr[I] <> 0 Then
- Begin
- Inc(FlagIsCorrect);
- Count := I;
- End
- Else
- Dec(I);
- End;
- For I := Count DownTo 1 Do
- Write(ResultArr[I]);
- End;
- Procedure Main();
- Begin
- OutputTaskInfo();
- OutputResultInConsole(FindMinimalNumber());
- End;
- Begin
- Main();
- Readln;
- End.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement