Re: Jaw Breaker - What's the ansewer?

From: Date: Wed, 20 Apr 2005 08:28:51 +0000
Subject: Re: Jaw Breaker - What's the ansewer?
References: 1  Groups: php.windows 
Request: Send a blank email to php-windows+get-25883@lists.php.net to get a copy of this message
JC Botha wrote:
The following is a section of PHP code (see Apache.org and PHP.net). function f($c) {
    $c++;
    if ($c % 2) { return f($c); }
    return $c++;
} function g($n) {
    for ($i=1;$i<10;$i++) {
      $n = f($n*$i);
    }
    return ($n);
}
      print(g($x));
What is the smallest value that $x can have if 4277108 is outputted to the screen after running this code? $x is a number between 1 and 10 and has 2 decimal places. it's not a jawbreaker, it's impossible IMO.
f() always returns the number if it's uneven, or if it's even, it returns (n+1). So, it always returns uneven. which means the result of g() can *never* be even. [[side note: unless "return $c++;" does first add 1 to it before returning, but I think it doesn't, since it's a postincrement operator. ]]

« previous php.windows (#25883) next »