REM {0, 1} 是 N 阶水仙花数的公共基。
REM &H1 阶水仙花数 = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}:10
REM &H2 阶水仙花数 = {}:0
REM &H3 阶水仙花数 = {153, 370, 371, 407}:4
REM &H4 阶水仙花数 = {1634, 8208, 9474}:3
REM &H5 阶水仙花数 = {04150, 04151, 54748, 92727, 93084}:5
REM &H6 阶水仙花数 = {548834}:1
REM &H7 阶水仙花数 = {1741725, 4210818, 9800817, 9926315}:4
REM &H8 阶水仙花数 = {}:0
REM &H9 阶水仙花数 = {}:0
REM 求 &HN 阶水仙花数,除非有新型算法,否则已经无意义了。在数学表达上发散与收敛要同时顾及。
Friend Shared Shadows Iterator Function 水仙花数(Optional ByVal Length As Int32 = &H3) As IEnumerable(Of Int32)
For u As Int32 = &H2 To CInt("".PadLeft(Length, "9"c))
Dim Buffer As Int32 = Nothing
For Each v As Char In CStr(u).PadLeft(Length, Zero)
Buffer += CInt(CInt(CStr(v)) ^ Length)
Next
If u = Buffer Then
Yield CType(u, Int32)
End If
Next
End Function
REM 如果有谁的机器性能够牛,可以尝试下 8阶、9阶水仙花数的运算,给我留个结果集。我的机器太慢了。
REM 竟然没有 &H2 阶水仙花数。
REM 注:N阶水仙花数牵扯到 N次方运算,机器不够牛的就不要试了。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。