Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program Project1;
- {$APPTYPE CONSOLE}
- {$R *.res}
- uses
- System.SysUtils;
- type
- TСharacteristic = array [0..3] of Integer;
- TDinamicArr = array of Integer;
- function FindNumber(NumberDescription: TСharacteristic): TСharacteristic;
- var
- index, CurrA: integer;
- FinalNumber:DinamicArrTСharacteristic;
- begin
- CurrA := NumberDescription[0] mod NumberDescription[2];
- SetLength(FinalNumber, NumberDescription[3]);
- FinalNumber[0] := CurrA;
- for index := 1 to NumberDescription[3] do
- begin
- CurrA := (CurrA - NumberDescription[1]) mod NumberDescription[2];
- FinalNumber[index] := CurrA;
- end;
- end;
- procedure PrintNumber(Number: TDinamicArr);
- var
- index, sum: integer;
- DinamicArr: TDinamicArr;
- begin
- if Length(Number) < 2 then
- for index := High(Number) downto 0 do
- Write(Number[index])
- else
- begin
- Sum := 0;
- for index := High(Number) downto 0 do
- Sum := Sum + Number[index];
- if Sum < 10 then
- begin
- SetLength(DinamicArr, 1);
- DinamicArr[0] := Sum;
- end
- else
- if Sum < 100 then
- begin
- DinamicArr[1] := Sum mod 10;
- DinamicArr[0] := Sum div 10;
- end;
- PrintNumber(DinamicArr);
- end;
- end;
- var
- AmountRep, index: integer;
- NumbersDescription: array of TСharacteristic; // a = (ai - b) mod m
- CurrentNumber: TDinamicArr; // 0 -> a
- begin // 1 -> b
- Readln(AmountRep); // 2 -> m
- SetLength(NumbersDescription, AmountRep); // 3 -> k
- for index := 1 to AmountRep do
- begin
- Read(NumbersDescription[index][0]);
- Read(NumbersDescription[index][1]);
- Read(NumbersDescription[index][2]);
- Readln(NumbersDescription[index][3]);
- end;
- for index := 1 to AmountRep do
- begin
- CurrentNumber := FindNumber(NumbersDescription[index]);
- PrintNumber(CurrentNumber);
- end;
- Readln;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement