完全な四角形だけを含むパーティションはいくつありますか?

負でない整数または桁のリストが与えられた場合、正の数を連結することによって数がどのように形成されるかを決定します。

input -> output # explanation
164 -> 2 # [16, 4], [1, 64]
101 -> 2 # [1, 01], [1, 0, 1]
100 -> 3 # [100], [1, 00], [1, 0, 0]
1 -> 1 # [1]
0 -> 1 # [0]
164900 -> 9 # [1, 64, 9, 0, 0], [1, 64, 9, 00], [1, 64, 900], [16, 4, 900], [16, 4, 9, 0, 0], [16, 4, 9, 00], [16, 49, 0, 0], [16, 49, 00], [16, 4900]

ルール

  • Standard Loopholes Apply
  • This is
    so the shortest answer in bytes wins
ベストアンサー

Haskell, 135 bytes

s x=any((x==).(^2))[0..x]
c(a:b:x)=a*10+b:x
c x=x
h[x]=1>0
h x=(s.head)x
f [email protected](_:_:_)|y<-until h c x=f(tail y)+f(c y)
f x=sum[1|any s x]

Try it
online!

おそらくよくゴルフはまだできませんが、これは驚くほど難しい問題です

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です