Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function Derangement
- {
- param (
- [bigint]$n
- )
- process
- {
- switch ($n)
- {
- ({ $global:cache.ContainsKey($n) }) { $r = $global:cache[$n]; break }
- 0 { $r = 1; break }
- 1 { $r = 0; break }
- default
- {
- $r = ($n - 1) * ((Derangement($n - 1)) + (Derangement($n - 2)))
- $global:cache[$n] = $r
- }
- }
- Write-Output $r
- }
- }
- $cache = @{ }
- $ChallengeInput = @(6, 9, 14) | ForEach {
- Write-Host "The Derangement of $_ is $(Derangement $_)"
- }
Advertisement
Add Comment
Please, Sign In to add comment