求VB平方镜反数怎么编程
答案:2 悬赏:0 手机版
解决时间 2021-04-16 07:15
- 提问者网友:贪了杯
- 2021-04-15 09:01
求VB平方镜反数怎么编程
最佳答案
- 五星知识达人网友:执傲
- 2021-04-15 10:37
什么是平方镜?什么是反数?现在的新名词层出不穷,求教一二?追问打个比方12的平方式144,那12的反数21的平方是441,那12就是平方镜反数,追答在vb 6.0中编辑的程序如下:
Private Sub Command1_Click()
Dim x, y As Long
Dim i, j, k As Integer
Dim Mystr1, Mystr2, Mystr3, Mystr4 As String
For x = 12 To 1000 '求1000以内的自然数中的平方镜反数。
Mystr1 = CStr(x) '先转化成字符串
j = Len(Mystr1) '数一数是几位数
For i = j To 1 Step -1
Mystr2 = Mystr2 + Mid(Mystr1, i, 1) '把自然数的数位顺序倒过来
Next i
If Mystr2 <> Mystr1 Then '倒顺序的数不能与原自然数相同。
Mystr3 = CStr(x ^ 2) '符合条件的数再平方
k = Len(Mystr3) '数一数平方之后的位数
For i = k To 1 Step -1 '在把平方之后数位顺序倒过来
Mystr4 = Mystr4 + Mid(Mystr3, i, 1)
Next i
y = (Val(Mystr4)) ^ 0.5 '倒顺序之后再开平方
If Val(Mystr2) = y And Right(Mystr1, 1) <> "0" Then
Print x '开方之后,把符合条件的打印出来
End If
Mystr2 = "": Mystr4 = "" '清空工具便于循环使用
End If
Next x
End Sub
Private Sub Command1_Click()
Dim x, y As Long
Dim i, j, k As Integer
Dim Mystr1, Mystr2, Mystr3, Mystr4 As String
For x = 12 To 1000 '求1000以内的自然数中的平方镜反数。
Mystr1 = CStr(x) '先转化成字符串
j = Len(Mystr1) '数一数是几位数
For i = j To 1 Step -1
Mystr2 = Mystr2 + Mid(Mystr1, i, 1) '把自然数的数位顺序倒过来
Next i
If Mystr2 <> Mystr1 Then '倒顺序的数不能与原自然数相同。
Mystr3 = CStr(x ^ 2) '符合条件的数再平方
k = Len(Mystr3) '数一数平方之后的位数
For i = k To 1 Step -1 '在把平方之后数位顺序倒过来
Mystr4 = Mystr4 + Mid(Mystr3, i, 1)
Next i
y = (Val(Mystr4)) ^ 0.5 '倒顺序之后再开平方
If Val(Mystr2) = y And Right(Mystr1, 1) <> "0" Then
Print x '开方之后,把符合条件的打印出来
End If
Mystr2 = "": Mystr4 = "" '清空工具便于循环使用
End If
Next x
End Sub
全部回答
- 1楼网友:痴妹与他
- 2021-04-15 11:45
以下是平方镜在vb.net中的程序,需要一个 listbox和command
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim xx As Long, j As String, i As String
xx = InputBox("请输入最大范围数", 100000)
For m = 10 To xx
i = m
j = StrReverse(i)
If i = j Then GoTo 10
If Int(i) ^ 2 = StrReverse(Int(j) ^ 2) Then
ListBox1.Items.Add(i & " " & j & " " & i ^ 2 & " " & j ^ 2)
End If
10:
Next
End Sub
End Class
如果想在vb6中运行 就把 ListBox1.Items.Add 改成 list1.additem
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim xx As Long, j As String, i As String
xx = InputBox("请输入最大范围数", 100000)
For m = 10 To xx
i = m
j = StrReverse(i)
If i = j Then GoTo 10
If Int(i) ^ 2 = StrReverse(Int(j) ^ 2) Then
ListBox1.Items.Add(i & " " & j & " " & i ^ 2 & " " & j ^ 2)
End If
10:
Next
End Sub
End Class
如果想在vb6中运行 就把 ListBox1.Items.Add 改成 list1.additem
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯