Леший Posted July 7, 2016 Report Share Posted July 7, 2016 Uzdevums ir sekojošs: Ir vārds "foo". Vajag uzrakstīt programmu, kas saņem uz input (vai kā argumentu, vienalga) integer skaitli n > 1. Programmai vajag izvadīt n rindas, pirmā no kurām ir jābūt n reizes vārdam "foo", otrā rindā n-1 reizes utt, pēdējā rindā vārdam foo ir jābūt tikai vienu reizi. Piemērs:> foo 3foofoofoo foofoo foo Svarīgākais nosacījums programmai: tai ir jābūt pēc iespējas obfuscētai. Bez koda aizkodēšanas un ievērojot koda standartus (indents utt) ir jāpanāk to, lai kods izskatītos maksimāli sarežģīti, lai cilvēks no malas ar lielām grūtībām varētu saprast, ko programma dara. Izmantot var conventional, lasāmas valodas, nevar izmantot brainf**k vai līdzīgus. Quote Link to comment Share on other sites More sharing options...
Roze Posted July 7, 2016 Report Share Posted July 7, 2016 Svarīgākais nosacījums programmai: tai ir jābūt pēc iespējas obfuscētai. Bez koda aizkodēšanas un ievērojot koda standartus (indents utt) ir jāpanāk to, lai kods izskatītos maksimāli sarežģīti, lai cilvēks no malas ar lielām grūtībām varētu saprast, ko programma dara. A jēga uzdevumam jebšu kam tas domāts/plānots? Jo nu tikpat labi vari paņemt linux kerneli, tad un vienā C failā tur iebakstīt printf("foofofooo\n") (protams ar pārējiem vipendroniem) .. tb skatīt Master Programmer @ http://roze.lv/Evolucija.txt Quote Link to comment Share on other sites More sharing options...
codez Posted July 7, 2016 Report Share Posted July 7, 2016 javascript: function f(s,n,b) { return s + (--n ? f(s, n, 1) + (b ? []: f(s, n)): "\n"); } usage: console.log(f("foo",3)) Quote Link to comment Share on other sites More sharing options...
F3llony Posted July 7, 2016 Report Share Posted July 7, 2016 class ProcessInput { /** * @var array */ private $mapDec = []; /** * @var int */ private $multiple; /** * @param array $mapDec * @param int $multiple */ public function __construct(array $mapDec, $multiple) { $this->mapDec = $mapDec; $this->multiple = $multiple; } /** * @param string $destination */ public function exec($destination) { $memStream = $this->openStream(); for ($i = $this->multiple; $i > 0x0; $i += -1) { fwrite($memStream, $this->getMapping($i)); } rewind($memStream); $this->safeCopyStream($memStream, $destination); fclose($memStream); } /** * @param int $r * @param int $ii * @return null|string */ private function doMap($r, $ii) { return (~(-$ii) + 1) % $r === 0x0 && $ii / $r === 0x1 ? chr($ii * 0x1) : null; } /** * @return resource */ private function openStream() { return fopen('php://memory', 'rw'); } /** * @param $memStream * @param $destination */ private function safeCopyStream($memStream, $destination) { if ($memStream && $destination) { $targetStream = fopen($destination, 'w'); if ($targetStream) { stream_copy_to_stream($memStream, $targetStream); fclose($targetStream); } } } /** * @param int $i * @return string */ private function getMapping($i) { $buffer = []; for ($ii = 0; $ii <= 0xFF; $ii++) { $result = array_map(function ($r) use ($ii) { return $this->doMap($r, $ii); }, $this->mapDec); $filtered = array_filter($result); if ($filtered) { $buffer[$ii] = implode($result); } } return str_repeat(implode($buffer), ($i * 0x1)) . PHP_EOL; } } $bMap = [ 0b01101111, 0b01100110, 0b01101111, ]; (new ProcessInput( $bMap, $argv[1] ))->exec('php://stdout'); Quote Link to comment Share on other sites More sharing options...
Wuu Posted July 7, 2016 Report Share Posted July 7, 2016 const f = (n, c) => Array(c).fill().map((v,k)=>Array(c-k).fill(n).join('')).join(String.fromCharCode(10)) console.log(f('foo', 4)) JavaScript 87%77 :> Quote Link to comment Share on other sites More sharing options...
jurchiks Posted July 7, 2016 Report Share Posted July 7, 2016 Jāatkārto Rozes teiktais - kāda ir uzdevuma jēga? Praktisks tas viennozīmīgi nav. Ko no šāda uzdevuma ir domāts iemācīties? Kā rakstīt nevajadzīgi sarežģītu kodu? Quote Link to comment Share on other sites More sharing options...
php newbie Posted July 7, 2016 Report Share Posted July 7, 2016 function foo($bar) { $i = 0; $t = $bar; echo str_repeat(('b' | 'd').('n' | 'k').('g' | 'm'), $bar).'<br>'; do { $bar = $bar ^ 1 << $i; } while (!($t & 1 << $i++)); if ($bar) foo($bar); } foo(4); slinkums kaut ko izdomāt... Quote Link to comment Share on other sites More sharing options...
php newbie Posted July 7, 2016 Report Share Posted July 7, 2016 Jāatkārto Rozes teiktais - kāda ir uzdevuma jēga? Praktisks tas viennozīmīgi nav. Ko no šāda uzdevuma ir domāts iemācīties? Kā rakstīt nevajadzīgi sarežģītu kodu? Varbut cilveks iet prom no darba un grib maksimali labi izpildit savu pedejo uzdevumu Quote Link to comment Share on other sites More sharing options...
nemakuphp Posted July 7, 2016 Report Share Posted July 7, 2016 Pieļauju, ka tu dēļ šī to raksti - https://www.quora.com/Homework-Question-How-do-I-write-a-program-that-produces-the-following-output-1 Ja nu kādam vajag iedvesmu. Quote Link to comment Share on other sites More sharing options...
jurchiks Posted July 7, 2016 Report Share Posted July 7, 2016 Varbut cilveks iet prom no darba un grib maksimali labi izpildit savu pedejo uzdevumu Tu šitā bez "/s" neraksti! Quote Link to comment Share on other sites More sharing options...
jurgenzz Posted July 8, 2016 Report Share Posted July 8, 2016 function f(a, b) { return a + (b > 1 ? (Array(b).join(a) + "\n") + f(a, b - 1) : Array(b).join(a))} Kaut kas starp woo un codez sanāca Quote Link to comment Share on other sites More sharing options...
Леший Posted July 8, 2016 Author Report Share Posted July 8, 2016 (edited) A jēga uzdevumam jebšu kam tas domāts/plānots? For fun. Nekādas jēgas nav. Varbūt tikai parādīt, cik labi cilvēks prot valodu un visādus valodas knifiņus. Mans variants: import Data.Char import System.Environment fib = 1 : scanl (+) 1 fib foo = map (chr . fromIntegral . (*3)) $ f : replicate 2 (f + 3) where f = fib !! ((>>= id) (.) (fromIntegral . (!!) fib) 4) output = mapM_ print . reverse . map ((>> foo) . e1) . e1 where e1 = enumFromTo 1 main = getArgs >>= output . read . head usage: ./foo 3 Edited July 8, 2016 by Леший Quote Link to comment Share on other sites More sharing options...
Wuu Posted July 8, 2016 Report Share Posted July 8, 2016 Kaut kas starp woo un codez sanāca const f = (n, c) => Array(c).fill().map((v,k)=>Array(c-k).fill(n).join('')).join('\n') console.log(f('foo', 4)) Nē, tev tur rekursīvi strādā, shorthand pārbaudes un mutācijas. codez atkal neaizsargā b parametru, kas nav pareizi. Imho, kāds to b var ierakstīt. console.log(f("foo",3, 7)). Papildus ir nevajadzīgs newline beigās. Tikai bez stresa. Quote Link to comment Share on other sites More sharing options...
codez Posted July 8, 2016 Report Share Posted July 8, 2016 (edited) Bet Wuu "neaizsargā" c parametru ("whatever it means") - kāds var ierakstīt f("foo","bar") Edited July 8, 2016 by codez Quote Link to comment Share on other sites More sharing options...
Wuu Posted July 9, 2016 Report Share Posted July 9, 2016 Bet Wuu "neaizsargā" c parametru ("whatever it means") - kāds var ierakstīt f("foo","bar") Ideja ir ļoti vienkārša, nedot pieeju parametriem un iekšējām funkcijām kurām nav jābūt pieejas no ārpasaules. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.