计算8位数中的水仙花数

来源:百度知道 编辑:UC知道 时间:2024/05/24 18:29:28
1个8位数,它所有的位数都乘上8次方,然后相加所得的和等于这个数。在所有的8位数中,计算出3个这样的数,并写出这3个数。

王吉生 吉林
3楼的谢谢 答的不错 不好意思我不太会编程回去试了下不运行啊 你用的时候运行好使吗 呵呵

一共三个:
24678050
24678051
88593477

Sub main()
Dim i As Long, str As String, tmp(0 To 7) As String, sum As Long
For i = 10000000 To 99999999
str = i
For j = 1 To 8
tmp(j - 1) = Mid(str, j, 1)
Next
sum = CLng(tmp(0)) ^ 8 + CLng(tmp(1)) ^ 8 + CLng(tmp(2)) ^ 8 + CLng(tmp(3)) ^ 8 + CLng(tmp(4)) ^ 8 + CLng(tmp(5)) ^ 8 + CLng(tmp(6)) ^ 8 + CLng(tmp(7)) ^ 8
DoEvents
If sum = i Then MsgBox i
Next
End Sub
还不错啊就是慢了点(才疏学浅)

这是典型的位数码和问题。

我以前研究过更一般的问题:

设正整数n=a_n*10^n+a_{n-1}*10^{n-1}+...+a_1*10+a_0
是十进制表达。
s^r(n)=(a_n)^r+...+(a_1)^r+(a_0)^r 称为r阶位数码和。
求n ,满足:n=s^r(n)

这是个很难的数论问题。 用初等方法很难解决它。不过r比较小时是可以直接计算的。

位数码和的问题非常广泛。奥数里就常常有这类题目。 许多国外搞数论的人,专门研究它。 你有兴趣的话可以去下列网站下载这方面的内容:http://www.math-cs.cmsu.edu/~curtisc/articles.html

如果你想了解一些关于位数