早教吧作业答案频道 -->其他-->
VB求守形数守形数即a^2=xxa如5^2=25,25^2=625题目是求1到2000的守形数,我编写了程序,可是结果只有1,5,6,为什么?代码PrivateFunctionfact(n%)AsBooleanDimm#,datam=n*ndata=mMod10Ifdata=nThenfact=TrueElsefa
题目详情
VB 求守形数
守形数即 a^2=xxa 如5^2=25,25^2=625
题目是求1到2000的守形数,我编写了程序,可是结果只有1,5,6,为什么?
代码
Private Function fact(n%) As Boolean
Dim m#,data
m = n * n
data = m Mod 10
If data = n Then
fact = True
Else
fact = False
End If
End Function
Private Sub Command1_Click()
Dim i%,k%
For i = 1 To 100
m = fact(i)
If m = True Then
k = k + 1
Print Tab(((k - 1) Mod 4) * 13); i;
Else
m = False
Print "";
End If
Next i
End Sub
守形数即 a^2=xxa 如5^2=25,25^2=625
题目是求1到2000的守形数,我编写了程序,可是结果只有1,5,6,为什么?
代码
Private Function fact(n%) As Boolean
Dim m#,data
m = n * n
data = m Mod 10
If data = n Then
fact = True
Else
fact = False
End If
End Function
Private Sub Command1_Click()
Dim i%,k%
For i = 1 To 100
m = fact(i)
If m = True Then
k = k + 1
Print Tab(((k - 1) Mod 4) * 13); i;
Else
m = False
Print "";
End If
Next i
End Sub
▼优质解答
答案和解析
首先你判断守型数的那个函数是错的,你只判断了N平方数的最后一位跟N是否一样,当然只能找个个位数的守型数了.因为当N位数为两位以上时(比如25) 他的平方数是625,在你拿625的最后一位5跟他比较当然不一样.正确的应该是取最后2位(2即25的位数).正确的函数应该是:
Private Function Fact(N As Long) As Boolean
Dim M
M = N * N
If Right(CStr(M),Len(CStr(N))) = CStr(N) Then Fact = True
End Function
然后你command1里的代码也要改改,一方面不够简洁,还有你是找1-2000内的,而你代码却是1-100范围的守型数.
Private Sub Command1_Click()
Dim I As Long,K As Integer
For I = 1 To 2000
If Fact(I) = True Then
K = K + 1
Print I,
If K Mod 4 = 0 Then Print
End If
Next I
End Sub
Private Function Fact(N As Long) As Boolean
Dim M
M = N * N
If Right(CStr(M),Len(CStr(N))) = CStr(N) Then Fact = True
End Function
然后你command1里的代码也要改改,一方面不够简洁,还有你是找1-2000内的,而你代码却是1-100范围的守型数.
Private Sub Command1_Click()
Dim I As Long,K As Integer
For I = 1 To 2000
If Fact(I) = True Then
K = K + 1
Print I,
If K Mod 4 = 0 Then Print
End If
Next I
End Sub
看了VB求守形数守形数即a^2=x...的网友还看了以下:
数学F(t)=e^t-t-1,则F(t)的导数=e^t-1为什么t≠0时,F(t)>F(0)=0, 2020-05-23 …
求极限的值limInx-1/x-e,x趋近于e我知道令x-e=t=limIn(e+t)-Ine/t 2020-06-17 …
令文法G[E]为:E→T|E+T|E-TT→F|T*F|T/FF→(E)|i证明E+T*F是它的一 2020-07-08 …
|E-A|=|AA^T-A|=|A(A^T-E^T)|,其中A是转置矩阵,为什么这里E也要跟着转置 2020-07-09 …
参化普:x=t+1/t,y=t-1/t(t为参)第二个:x=e^t+e^-ty=2(e^t-e^- 2020-07-11 …
已知函数y=(e^x-a)^2+(e^(-x)-a)^2(a属于R,a不等于0),求y的最小值Y= 2020-07-21 …
这个微分方程怎么解!r(t)^2+3r(t)^1+2r(t)=e(t)^2+2e(t)^1+e(t 2020-07-23 …
写单词,这些单词打乱顺序了!:1.d,f,e,n,i,f,e,r,t,()2.g,h,o,e,t, 2020-07-26 …
关于参数方程的问题1.x=e^t+e^(-t)y=2(e^t-e^(-t))e=2.71828(t 2020-08-02 …
limt→0(1+1/t)^t=e证明因为limx→∞时(1+1/x)^x=e,令x=1/t,则当x 2020-12-27 …