其实从数学的角度想你的计算已经很简洁了,或者说我的数学水平还没有你高。。
但是从代码的角度看还有其他更简便的解决方式
a是从inputbox里面来的,所以一开始a就是字符串,直接当做字符串处理就好了
位数就是 Len(a)
第n位数字就是 Int(Mid(a, n, 1))
完整代码:
' 用InputBox获得用户输入,返回值是字符串类型的
Dim a ' 使用变量前先用"Dim 变量名"的方式声明变量,是一个好习惯
a = InputBox("请输入一个数字!", "这里可以写窗口标题", "这里可以写输入框里的默认文本") ' 获取用户输入存在a这个变量里
' Len(a)函数可以获取a字符串的长度,在这里也就等于输入的数的位数
Dim Length ' 声明新变量Length
Length = Len(a) ' 获取a的长度存到变量Length里
MsgBox "这是一个" & Length & "位数!", vbInformation, "这里可以写窗口标题" ' 用MsgBox显示出来,第二个参数我们写vbInformation可以让窗口显示一个信息图标,第三个参数可以用来写窗口标题,当然后面两个参数不需要用的时候可以省略不写
' For i = n To m
' ....
' Next
' 这种For Next循环结构,就相当于下面这种Do Loop循环的简写
' Dim i
' i = n
' Do Until i > m
' ...
' i = i + 1
' Loop
' 就是在循环里自带了一个第一次循环时值为n、每次循环不断+1、一直循环直到 i > m 为止的变量i
For i = 1 To Length
' Mid(a, n, m)可以获取字符串a从第n个字符开始,连续m个字符的内容
' 加号"+"也可以当作连接号"&",用来拼接字符串
MsgBox "这个数的第" + i + "位数是" + Mid(a, i, 1)
‘ 在这种For循环里,我们不用写i = i + 1就可以直接用i,方便吧?
Next
但是从代码的角度看还有其他更简便的解决方式
a是从inputbox里面来的,所以一开始a就是字符串,直接当做字符串处理就好了
位数就是 Len(a)
第n位数字就是 Int(Mid(a, n, 1))
完整代码:
' 用InputBox获得用户输入,返回值是字符串类型的
Dim a ' 使用变量前先用"Dim 变量名"的方式声明变量,是一个好习惯
a = InputBox("请输入一个数字!", "这里可以写窗口标题", "这里可以写输入框里的默认文本") ' 获取用户输入存在a这个变量里
' Len(a)函数可以获取a字符串的长度,在这里也就等于输入的数的位数
Dim Length ' 声明新变量Length
Length = Len(a) ' 获取a的长度存到变量Length里
MsgBox "这是一个" & Length & "位数!", vbInformation, "这里可以写窗口标题" ' 用MsgBox显示出来,第二个参数我们写vbInformation可以让窗口显示一个信息图标,第三个参数可以用来写窗口标题,当然后面两个参数不需要用的时候可以省略不写
' For i = n To m
' ....
' Next
' 这种For Next循环结构,就相当于下面这种Do Loop循环的简写
' Dim i
' i = n
' Do Until i > m
' ...
' i = i + 1
' Loop
' 就是在循环里自带了一个第一次循环时值为n、每次循环不断+1、一直循环直到 i > m 为止的变量i
For i = 1 To Length
' Mid(a, n, m)可以获取字符串a从第n个字符开始,连续m个字符的内容
' 加号"+"也可以当作连接号"&",用来拼接字符串
MsgBox "这个数的第" + i + "位数是" + Mid(a, i, 1)
‘ 在这种For循环里,我们不用写i = i + 1就可以直接用i,方便吧?
Next