How to convert an array of digits to an integer add 1 and convert it back to an array of digits in Pascal

1 Answer

0 votes
program ConvertArrayAndInt;

function ConvertArrayOfDigitsToIntNumber(arr: array of Integer): Integer;
var
  n, i: Integer;
begin
  n := 0;
  for i := Low(arr) to High(arr) do
    n := n * 10 + arr[i];
  ConvertArrayOfDigitsToIntNumber := n;
end;

procedure ConvertIntNumberToArrayOfDigits(var digits: array of Integer; n: Integer);
var
  i: Integer;
begin
  i := High(digits); // Start from the last index
  while n > 0 do
  begin
    digits[i] := n mod 10; // Extract the last digit
    n := n div 10;        // Remove the last digit
    i := i - 1;
  end;
end;

var
  arr: array[0..3] of Integer = (9, 4, 6, 9);
  n, i: Integer;
begin
  // Convert the array of digits into an integer
  n := ConvertArrayOfDigitsToIntNumber(arr);
  
  // Increment the number
  n := n + 1;

  // Convert the incremented integer back to an array of digits
  ConvertIntNumberToArrayOfDigits(arr, n);
  
  // Print the results
  Writeln('n = ', n);
  for i:= 0 to 3 do
      write(arr[i], ',');
end.



(*
run:

n = 9470
9,4,7,0,

*)

 



answered Apr 12 by avibootz
...