计算1到123的平方根的倒数之和(保留5位小数).编写子函数(过程), 求一个十进制数的各位数字之和。调用该函数,求1234,3456,6789三个数的各位数字总和。

问题描述:

计算1到123的平方根的倒数之和(保留5位小数).
编写子函数(过程), 求一个十进制数的各位数字之和。调用该函数,求1234,3456,6789三个数的各位数字总和。

' '在VB中运行以下代码:
' 计算1到123的平方根的倒数之和(保留5位小数)
Sub daosusum()
Dim x As Single
Dim xsum As Single
xsum = 0
Dim i As Integer
For i = 1 To 123
x = Sqr(i)
xsum = xsum + 1 / x
Next
MsgBox "1至123的平方根的倒数之和为:" & xsum
End Sub
' 答:1-123的平方根的倒数之和为20.76577
’****************************************************
' 以下为求各个位数数值之和的函数
Function qiusum(c As String) As Integer '
Dim i As Integer
Dim cc As Integer
cc = Len(c)
qiusum = 0
For i = 1 To cc
qiusum = qiusum + Val(Mid(c, i, 1))
'MsgBox c & "的各个位数之和为:" & qiusum
Next i
End Function
' '*************************************
' 以下为调用求位数之和函数的调用过程代码,
' 可以在弹出消息框中输入要求的数值
Sub diaoyong()
Dim c As String
c = InputBox("请输入一个要计算位数的数值")
MsgBox c & "的各个位数数值之和为:" & qiusum(c)
End Sub

计算1到123的平方根的倒数之和(保留5位小数)=20.76577
因为函数没有自循环机制,只能做有限量的计算
例如,假设输入值不超过9999放在A1栏
那么输出栏可以用一下函数计算:
=VALUE(LEFT(TEXT(A1,0),1))+IF(A1>=10,VALUE(MID(TEXT(A1,0),2,1)))+IF(A1>=100,VALUE(MID(TEXT(A1,0),3,1)))+IF(A1>=1000,VALUE(MID(TEXT(A1,0),4,1)))