早教吧作业答案频道 -->其他-->
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...的网友还看了以下:
正老师,问您一个关于连读的问题,diplomat这个词中p发音吗?按失去爆破的规则来说,p遇到l后 2020-05-14 …
若集合P={x|mx^2+2x+1=0,x为实数}只有两个子集,则实数m的取值应为?答案上说由题意 2020-05-15 …
**25、在平面直角坐标系中,设坐标轴的单位长度为1cm,整数点P从原点O出发,速度为1cm/s, 2020-05-15 …
以下程序段中调用scanf函数给变量a输入数值的方法是错误的,其原因是。int*p,*q,a,b; 2020-05-17 …
还是多项式问题多项式P(X²-1)=P(X-1)P(X+1)求1)如果a是P的一个复数解,证明|a 2020-06-03 …
在平面直角坐标系中,横,纵坐标系都为整数的点叫整点,如图,动点P从原点出发,速度为每秒1个单位单位 2020-06-03 …
命题p错误,非p一定正确?命题的非p和否命题一样吗?请详解.P命题:如果x大于2,那么X大于3他的 2020-06-07 …
几何题,求一点轨迹.单位圆上一点P只在第一象限运动.过点P做切线与x、y轴分别相交于S、T两点.M 2020-06-08 …
在三角形ABC中,角B与角C的角平分线相交于点P,过点P,过点B作BF//PC交AC的延长线于点F 2020-07-24 …
////(人教版)初中数学平面直角坐标系问题////在平面直角坐标系中,横,纵坐标都是整数的点叫做整 2020-11-18 …