Sha256: dffce44c33fcd24ebda01af34ee2d7ca2dc1f76b25879a0bd056fb7dbfdc8344

Contents?: true

Size: 641 Bytes

Versions: 318

Compression:

Stored size: 641 Bytes

Contents

unit uGrains;

interface

type
  Grains = class
    class function Square(aInteger: integer): UInt64; static;
    class function Total: UInt64; static;
  end;

implementation
uses System.SysUtils;

class function Grains.Square(aInteger: integer): UInt64;
begin
  if (aInteger < 1) or (aInteger > 64) then
    raise ERangeError.CreateFmt('Argument of %d is out of bounds.  Must be > 0 and < 65',[aInteger]);

  if aInteger = 1 then
    result := 1
  else
    result := 2 * Square(aInteger - 1);
end;

class function Grains.Total: UInt64;
var i: integer;
begin
  result := 0;
  for i := 1 to 64 do
    result := result + Square(i);
end;

end.

Version data entries

318 entries across 318 versions & 1 rubygems

Version Path
trackler-2.0.8.36 tracks/delphi/exercises/grains/uGrainsExample.pas
trackler-2.0.8.35 tracks/delphi/exercises/grains/uGrainsExample.pas
trackler-2.0.8.34 tracks/delphi/exercises/grains/uGrainsExample.pas
trackler-2.0.8.33 tracks/delphi/exercises/grains/uGrainsExample.pas
trackler-2.0.8.32 tracks/delphi/exercises/grains/uGrainsExample.pas
trackler-2.0.8.31 tracks/delphi/exercises/grains/uGrainsExample.pas
trackler-2.0.8.30 tracks/delphi/exercises/grains/uGrainsExample.pas
trackler-2.0.8.29 tracks/delphi/exercises/grains/uGrainsExample.pas
trackler-2.0.8.28 tracks/delphi/exercises/grains/uGrainsExample.pas
trackler-2.0.8.27 tracks/delphi/exercises/grains/uGrainsExample.pas
trackler-2.0.8.26 tracks/delphi/exercises/grains/uGrainsExample.pas
trackler-2.0.8.24 tracks/delphi/exercises/grains/uGrainsExample.pas
trackler-2.0.8.23 tracks/delphi/exercises/grains/uGrainsExample.pas
trackler-2.0.8.22 tracks/delphi/exercises/grains/uGrainsExample.pas
trackler-2.0.8.21 tracks/delphi/exercises/grains/uGrainsExample.pas
trackler-2.0.8.20 tracks/delphi/exercises/grains/uGrainsExample.pas
trackler-2.0.8.19 tracks/delphi/exercises/grains/uGrainsExample.pas
trackler-2.0.8.18 tracks/delphi/exercises/grains/uGrainsExample.pas
trackler-2.0.8.17 tracks/delphi/exercises/grains/uGrainsExample.pas
trackler-2.0.8.16 tracks/delphi/exercises/grains/uGrainsExample.pas