Skip to content

Instantly share code, notes, and snippets.

@rh-KIMATA
Created September 22, 2023 11:50
Show Gist options
  • Save rh-KIMATA/23f669942e51eea7151faad77c0b5999 to your computer and use it in GitHub Desktop.
Save rh-KIMATA/23f669942e51eea7151faad77c0b5999 to your computer and use it in GitHub Desktop.
世界のナベアツ風に3の倍数と3が付く数字のとき末尾に "!" を付ける。
<#
.SYNOPSIS
世界のナベアツ風に3の倍数と3が付く数字のとき末尾に "!" を付ける。
.DESCRIPTION
入力された自然数を文字列に変換し返却する。ただし、3の倍数と3が付くとき末尾に "!" を付ける。
.PARAMETER Int
変換対象の数値
.EXAMPLE
PS> 1,2,3 | Convert-IntToWroldNabeatsu;
1
2
3!
PS> 11,12,13 | Convert-IntToWroldNabeatsu;
11
12!
13!
.NOTES
実装においてパラメータの $Int を文字列として評価しない。
#>
function Convert-IntToWroldNabeatsu{
param(
[parameter(Mandatory = $true, ValueFromPipeline = $true)]
[Int] $Int
)
process {
[String] $result = [String] $Int;
if($Int % 3 -eq 0){
return $result + "!";
}
while($Int -ne 0) {
if($Int % 10 -eq 3){
return $result + "!";
}
$Int = [Math]::floor($Int/10);
}
return $result;
}
}
<#
.SYNOPSIS
世界のナベアツ風に3の倍数と3が付く数字のとき末尾に "!" を付ける。
.DESCRIPTION
入力された自然数として解釈できる文字列を返却する。ただし、3の倍数と3が付くとき末尾に "!" を付ける。
.PARAMETER String
文字列
.EXAMPLE
PS> 1,2,3 | Convert-StringToWroldNabeatsu;
1
2
3!
PS> 11,12,13 | Convert-StringToWroldNabeatsu;
11
12!
13!
.NOTES
実装においてパラメータの $String を数値として評価しない。
#>
function Convert-StringToWroldNabeatsu{
param(
[parameter(Mandatory = $true, ValueFromPipeline = $true)]
[String] $String
)
process {
[String] $result = $String;
if($String -match '3'){
return $result + "!";
}
$String = $String -replace "[369]", "0" -replace "[147]", "1" -replace "[258]", "2"
while($String.length -gt 1){
$String = $String -replace "(00|12|21)", "0" -replace "(01|10|22)", "1" -replace "(02|11|20)", "2";
}
if($String -eq "0"){
return $result += "!";
}
return $result;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment