diff -r 000000000000 -r 624a9ab34425 szamolgato-szamizalo.pl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/szamolgato-szamizalo.pl Wed May 07 16:25:00 2014 +0200 @@ -0,0 +1,81 @@ +#!/usr/bin/perl +# +# Szamolgato v1.0, 99/10/13 +# (c)1999 peter 'grin' gervai +# +# kiirja egy szam erteket betukkel +# + +$n=$ARGV[0] + 0; +print "$n = ",&betukre($n),"\n"; +#print &betukre($n),"\n"; + + +sub betukre { + my $n = shift; + + my @SZAM = ( 'nulla','egy','kettő','három','négy','öt','hat','hét','nyolc','kilenc' ); + my @TIZES= ( '','tizen','huszon','harminc','negyven','ötven','hatvan','hetven','nyolcvan','kilencven' ); + + #my @HATVANY=( 'száz','ezer','millió','milliárd', 'billió', 'billiárd','trillió', + # 'trilliárd', 'kvadrillió', 'kvadrilliárd', ); + # my @EXP = ( 2, 3, 6, 9, 12, 15, 18 ); + + + my @HATVANY = qw( száz ezer ); + my @EXP = ( 2, 3 ); + # \/ idaig tart a szamabrazolas :) + my @hatvanyok1 = qw( milli billi trilli kvadrilli kvintilli szextilli + szeptilli oktilli nonilli decilli undecilli bidecilli tridecilli kvadecilli kvintdecilli szexdecilli ); + for my $i ( 1..16 ) { + push @HATVANY, $hatvanyok1[$i-1] . 'ó'; + push @EXP, $i*6; + push @HATVANY, $hatvanyok1[$i-1] . 'árd'; + push @EXP, $i*6+3; + } + + push @HATVANY, 'googol'; + push @EXP, 100; + + push @HATVANY, 'centillió'; + push @EXP, 600; + + # 1 googolplex = 10^googol = 10^(10^100) + + my $out = ""; + + for( my $hatv=$#HATVANY; $hatv>=0; $hatv-- ) { + # 10^$hatv az alap + my $hatv_num = $EXP[$hatv]; + my $alap = "1e$hatv_num" + 0; + if( $n>=$alap ) { + my $resz = int($n / $alap); + $out .= '-' if $out ne ''; + $out = $out . &betukre($resz) . $HATVANY[$hatv]; + $n -= $resz * $alap; + } + } + + if( $n > 99 ) { + $out .= '-' if $out ne ''; + $out .= "SOK"; + } elsif( $n > 9 ) { + $out .= '-' if $out ne ''; + if( $n==10 ) { + $out .= 'tíz'; + } elsif( $n==20 ) { + $out .= 'húsz'; + } else { + my $tizen = int( $n / 10); + $out .= $TIZES[$tizen] unless $tizen==0; + my $egyen = $n - ($tizen * 10); + $out .= $SZAM[$egyen] unless $egyen==0; + } + } elsif( $n > 0 ) { + $out .= '-' if $out ne ''; + $out .= $SZAM[$n]; + } + + return $out; +} +