123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- (* The Computer Language Shootout
- http://shootout.alioth.debian.org/
- contributed by Josh Goldfoot *)
- program partialSums;
- uses SysUtils, Math;
- const
- twoThirds = 2.0 / 3.0;
- var
- n, code, k: longint;
- sum1, sum2, sum3, sum4, sum5, sum6, sum7, sum8, sum9, k3, sink, cosk, a: double;
- begin
- if paramCount() = 1
- then Val (ParamStr (1),n,Code)
- else n := 25000;
- a := -1.0;
- for k := 1 to n do
- begin
- k3 := intpower(k, 3);
- sink := sin(k);
- cosk := cos(k);
- a := -a;
- sum1 := sum1 + intpower(twoThirds,k - 1);
- sum2 := sum2 + 1.0 /sqrt(k);
- sum3 := sum3 + 1.0/(k*(k+1.0));
- sum4 := sum4 + 1.0/(k3*(sink*sink));
- sum5 := sum5 + 1.0/(k3*(cosk*cosk));
- sum6 := sum6 + 1.0/k;
- sum7 := sum7 + 1.0/intpower(k, 2);
- sum8 := sum8 + a/k;
- sum9 := sum9 + a/(k + k - 1.0 );
- end;
- writeLn(sum1:10:9, #9, '(2/3)^k');
- writeLn(sum2:10:9, #9,'k^-0.5');
- writeLn(sum3:10:9, #9,'1/k(k+1)');
- writeLn(sum4:10:9, #9,'Flint Hills');
- writeLn(sum5:10:9, #9,'Cookson Hills');
- writeLn(sum6:10:9, #9,'Harmonic');
- writeLn(sum7:10:9, #9,'Riemann Zeta');
- writeLn(sum8:10:9, #9,'Alternating Harmonic');
- writeLn(sum9:10:9, #9,'Gregory');
- end.
|