早教吧 育儿知识 作业答案 考试题库 百科 知识分享

vb,不能赋值变量值到该表达式PrivateSubCommand1Click()DimiAsInteger,jAsInteger,mAsInteger,sAsString,tAsStringFori=1To10000Forj=1ToLen(CStr(i))\2IfMid(CStr(i),j,1)Mid(CStr(i),Len(CStr(i)-j+1),1)ThenExitForN

题目详情
vb,不能赋值变量值到该表达式
Private Sub Command1_Click()
Dim i As Integer,j As Integer,m As Integer,s As String,t As String
For i = 1 To 10000
For j = 1 To Len(CStr(i)) \ 2
If Mid(CStr(i),j,1) Mid(CStr(i),Len(CStr(i) - j + 1),1) Then Exit For
Next j
If j > Len(CStr(i)) \ 2 Then s = i ^ 2
For m = 1 To Len(CStr(s)) \ 2
If Mid(CStr(s),m,1) Mid(CStr(s),Len(CStr(s) - m + 1),1) Then Exit For
Next m
If m > Len(CStr(s)) \ 2 Then b = i & "^" & "2" & "=" & s
List1.AddItem b
Next i
End Sub
貌似是
If Mid(CStr(i),j,1) Mid(CStr(i),Len(CStr(i) - j + 1),1) Then Exit For
If Mid(CStr(s),m,1) Mid(CStr(s),Len(CStr(s) - m + 1),1) Then Exit For
哪里错了?
▼优质解答
答案和解析

改为

If Mid(CStr(i), j, 1) <> Mid(CStr(i), Len(CStr(i)) - j + 1, 1) Then Exit For
If Mid(CStr(s), m, 1) <> Mid(CStr(s), Len(CStr(s)) - m + 1, 1) Then Exit For

另外你的代码有逻辑错误,改为:

Private Sub Command1_Click()
Dim i As Integer, j As Integer, m As Integer, s As String, b As String
For i = 1 To 10000
    For j = 1 To Len(CStr(i)) \ 2
        If Mid(CStr(i), j, 1) <> Mid(CStr(i), Len(CStr(i)) - j + 1, 1) Then Exit For
    Next j
    If j > Len(CStr(i)) \ 2 Then
        s = i ^ 2
        For m = 1 To Len(s) \ 2
            If Mid(s, m, 1) <> Mid(s, Len(s) - m + 1, 1) Then Exit For
        Next m
        If m > Len(s) \ 2 Then
            b = i & "^2=" & s
            List1.AddItem b
        End If
    End If
Next i
End Sub

另外我再友情提供一个更简单的代码给你:

Private Sub Command1_Click()
Dim i As Integer
For i = 1 To 10000
    If CStr(i) = StrReverse(i) And CStr(i ^ 2) = StrReverse(i ^ 2) Then
        List1.AddItem i & "^2=" & i ^ 2
    End If
Next i
End Sub