Zee
Zee is my Dutch dialect of C. Since Dutch has compound words, so does Zee: "const char **" becomes vasteletterverwijzingsverwijzing, not vaste letter verwijzing verwijzing, which would be incorrect. A pointer to a long long unsigned int is, obviously, a zeergrootnatuurlijkgetalverwijzing.
Code
#ingesloten "zee.kop"
#ingesloten "algemeen.kop"
besloten getal
splits(
zeer groot natuurlijk getal x,
zeergrootnatuurlijkgetalverwijzing a,
zeergrootnatuurlijkgetalverwijzing b)
{
zeer groot natuurlijk getal m;
getal n, g;
mits (!x) lever 0;
voor (n=0, m=1; m<=x; n++, m*=10) ; mits (n%2) lever 0;
voor (g=0, m=1; g<n/2; g++, m*=10) ;
volg a = x/m;
volg b = x%m; lever 1;
}
#definieer GEHL (1024*1024)
besloten zeer groot natuurlijk getal geh[GEHL][76];
besloten zeer groot natuurlijk getal
afdalen(zeer groot natuurlijk getal w, getal n)
{
zeer groot natuurlijk getal a,b;
mits (n<1 ) lever 1;
mits (w==0) lever afdalen(1, n-1);
mits (w<10) lever afdalen(w*2024, n-1);
mits (w<GEHL && geh[w][n]) lever geh[w][n];
mits (!splits(w, naar a, naar b)) lever afdalen(w*2024, n-1);
lever w<GEHL ? geh[w][n] =
afdalen(a, n-1) + afdalen(b, n-1) :
afdalen(a, n-1) + afdalen(b, n-1);
}
getal
main(getal parametersom, vasteletterverwijzingsverwijzing parameters)
{
zeer groot natuurlijk getal d1=0,d2=0, waarde;
mits (parametersom > 1)
VERWERP(heropen(parameters[1], "r", standaardinvoer));
zolang (invorm(" %llu", &waarde) == 1) {
d1 += afdalen(waarde, 25);
d2 += afdalen(waarde, 75);
}
uitvorm("11: %llu %llu\n", d1, d2);
lever 0;
}
And of course we don't have a Makefile but a Maakbestand:
alles: β¬{DAGEN}
schoon:
β¬{WIS} -f β¬{DAGEN} *.o
...
.TWIJFELACHTIG: alles schoon oplossingen
.UITGANGEN: .zee .o
.zee.o:
β¬{ZEE} β¬{VOORWERKVLAG} β¬{ZEEVLAG} -o β¬@ -c β¬<