プログラミングのお題スレ Part22 (857レス)
前次1-
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん

リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
598: デフォルトの名無しさん [] 2025/02/13(木) 20:12:01.16 ID:3SfOseF2(1/2) AAS
>>594
594(7): デフォルトの名無しさん [sage] 2025/02/13(木) 12:04:43.08 ID:KGk2Z9bM(1) AAS
お題:ランダムな数列から任意の並んでいる二つの数同士を足して、その二つの数の間に挿入せよ。
その新しい数が一桁ならそのまま挿入し二桁なら桁同士を足してその二桁の間に挿入せよ。

< 123456789 3 4
> 1237456789

(3+4=7)

< 123456789 6 7
> 123456143789

(6+7=13 1+3=4)
題意が以下の通りだとして、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: デフォルトの名無しさん [] 2025/02/13(木) 20:34:25.67 ID:3SfOseF2(2/2) AAS
>>599
599(1): 9 [sage] 2025/02/13(木) 20:24:48.49 ID:UAfabByi(2/3) AAS
数学屋さんかいなw
i,jの「3 4」とか「6 7」は桁の位置をしていしているのではなく数値列の中にある数字を指定するんジャマイカ
とオレは解釈したが
そうか。だとすれば、

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.035s