プログラミングのお題スレ Part22 (863レス)
上下前次1-新
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
598: デフォルトの名無しさん [] 02/13(木)20:12 ID:3SfOseF2(1/2)
>>594
題意が以下の通りだとして、PowerShell (エラーチェックは省略)
自然数x, i, j (i + 1 = jを満たす) が与えられる。xの上i桁目の数字をx[i]で表す。
x[i]とx[j]の和をyとして、
・yが1桁のとき、yをx[i]とx[j]の間に挿入せよ
・yが2桁のとき、y[1]とy[2]の和をy[1]とy[2]の間に挿入してから、yをx[i]とx[j]の間に挿入せよ
function f($x, $i, $j)
{
$s = [string]$x
$y = [int][string]$s[$i - 1] + [int][string]$s[$j - 1]
if ($y -lt 10) {
$s.insert($i, $y)
} else {
$s.insert($i, 11 * $y)
}
}
(123456789, 3, 4), (123456789, 6, 7) |% {
"< $($_[0]) $($_[1]) $($_[2])"
"> $(f $_[0] $_[1] $_[2])", ""
}
[実行結果]
< 123456789 3 4
> 1237456789
< 123456789 6 7
> 123456143789
600: デフォルトの名無しさん [] 02/13(木)20:34 ID:3SfOseF2(2/2)
>>599
そうか。だとすれば、
function f($x, $i, $j)
{
$s = [string]$x
$y = $i + $j
if ($y -ge 10) {$y *= 11}
$s -replace "$i$j", "$i$y$j"
}
(123456789, 3, 4), (123456789, 6, 7), (123456789, 8, 9), ("3141592653589793238462643383279502884197169399375105820974944", 9, 7) |% {
"< $($_[0]) $($_[1]) $($_[2])"
"> $(f $_[0] $_[1] $_[2])", ""
}
[実行結果]
< 123456789 3 4
> 1237456789
< 123456789 6 7
> 123456143789
< 123456789 8 9
> 123456781879
< 3141592653589793238462643383279502884197169399375105820974944 9 7
> 3141592653589176793238462643383279502884191767169399375105820917674944
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.036s