大家猜猜我今年多少岁

来源:百度知道 编辑:UC知道 时间:2024/05/27 19:52:46
我今年岁数的立方是个四位数,岁数的四次方是个六位数,这两个数,刚好把十个数字0~9全都用上了,不重不漏。

咋一看,这道题很难,其实不然。
设你今年x岁,首先岁数的立方是四位数,这确定了一个范围。10的立方是1000,20的立方是8000,21的立方是9261,是四位数;22的立方是10648;所以10=<x<=21 x四次方是个六位数,10的四次方是10000,离六位数差远啦,15的四次方是50625还不是六位数,17的四次方是83521也不是六位数。18的四次方是104976是六位数。20的四次方是160000;21的四次方是194481; 综合上述,得18=<x<=21,那只可能是18,19,20,21四个数中的一个数;因为这两个数刚好把十个数字0、1、2、3、4、5、6、7、8、9全都用上了,四位数和六位数正好用了十个数字,所以四位数和六位数中没有重复数字,现在来一一验证,20的立方是80000,有重复;21的四次方是194481,也有重复;19的四次方是130321;也有重复;18的立方是5832,18的四次方是104976,都没有重复。

所以,你今年18岁。

18

19岁

18
18^3=5832
18^4=104976

'通过编程语言VB实现直接输出结果
Private Sub Command1_Click()
Dim i, j As Long
Dim n As Long

For i = 1 To 200 '从一岁到两百岁进行循环
'条件判断
If i ^ 3 >= 1000 And i ^ 3 <= 9999 And i ^ 4 >= 100000 And i ^ 4 <= 999999 Then
If GetDigit(CStr(i ^ 3) & CStr(i ^ 4)) Then Print i, i ^ 3, i ^ 4
End If
Next i

End Sub

'此函数判断输入的数字是否是由不同数字组成的
Function GetDigit(ByVal strI