jagreygoose

Challenge #367 [Easy] Subfactorials - Another Twist on Facto

Jan 11th, 2019
597
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.     function Derangement
  2.     {
  3.         param (
  4.             [bigint]$n
  5.         )
  6.    
  7.         process
  8.         {
  9.        
  10.             switch ($n)
  11.             {
  12.                 ({ $global:cache.ContainsKey($n) }) { $r = $global:cache[$n]; break }
  13.                 0 { $r = 1; break }
  14.                 1 { $r = 0; break }
  15.                 default
  16.                 {
  17.                     $r = ($n - 1) * ((Derangement($n - 1)) + (Derangement($n - 2)))
  18.                     $global:cache[$n] = $r
  19.                 }
  20.             }
  21.             Write-Output $r
  22.        
  23.         }
  24.    
  25.     }
  26.  
  27.  
  28.     $cache = @{ }
  29.  
  30.     $ChallengeInput = @(6, 9, 14) | ForEach {
  31.    
  32.         Write-Host "The Derangement of $_ is $(Derangement $_)"
  33.    
  34.     }
Advertisement
Add Comment
Please, Sign In to add comment