Code Chef ODD Problem Solved With PHP

Nishant Arora 22/Nov/2011
Facebook
Twitter
LinkedIn
Reddit

This one was pretty straight forward, Problem Statement here

<?php
$ip = fopen('php://stdin', "r");
$op = fopen('php://stdout',"w");

$test_cases = trim(fgets($ip));
$c = 0;
$two[0] = 1;
$two[1] = 2;
$two[2] = 4;
$two[3] = 8;
$two[4] = 16;
$two[5] = 32;
$two[6] = 64;
$two[7] = 128;
$two[8] = 256;
$two[9] = 512;
$two[10] = 1024;
$two[11] = 2048;
$two[12] = 4096;
$two[13] = 8192;
$two[14] = 16384;
$two[15] = 32768;
$two[16] = 65536;
$two[17] = 131072;
$two[18] = 262144;
$two[19] = 524288;
$two[20] = 1048576;
$two[21] = 2097152;
$two[22] = 4194304;
$two[23] = 8388608;
$two[24] = 16777216;
$two[25] = 33554432;
$two[26] = 67108864;
$two[27] = 134217728;
$two[28] = 268435456;
$two[29] = 536870912;
$two[30] = 1073741824;

while($c < $test_cases){
  $val = trim(fgets($ip));
  $i = 30;
  while($val < $two[$i]){
    $i--;
  }
  fwrite($op, sprintf("%d\n", $two[$i]));
  $c++;
}
?>

Working Solution Here

Cheers!

PS: Will update more as I get "TIME" to solve them.. :)