aboutsummaryrefslogtreecommitdiff
path: root/challenge-173/deadmarshal/ada/ch1.adb
blob: 5bcefe1f3e36608e5555df864832c62151dd7e02 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
-- Compile with: gnatmake ch1.adb
with Ada.Text_IO;use Ada.Text_IO;

procedure Ch1 is
  function is_esthetic_number(N:in out Integer) return Boolean is
    function Uabs(A,B:Integer) return Integer is
    begin
      if a < b then return b - a; else return a - b; end if;
    end Uabs;
    
    I,J:Integer;
  begin
    if N = 0 then return False; end if;
    I := N mod 10;
    N := N / 10;
    while(N > 0) loop
      J := N mod 10;
      if Uabs(I, J) /= 1 then return False; end if;
      N := N / 10;
      I := J;
    end loop;
    return True;
  end is_esthetic_number;
  
  N:Integer;
begin	
  Put("Enter an integeral number: ");
  N := Integer'Value(Get_Line);
  Put_Line(Boolean'Image(is_esthetic_number(N)));
end Ch1;