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

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
▼优质解答
答案和解析
首先你判断守型数的那个函数是错的,你只判断了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
看了VB求守形数守形数即a^2=x...的网友还看了以下:

真核细胞的一个基因只能编码一种蛋白质,以下说法正确的是A.它的编码序列只含一个外显子和一个内含子B  2020-04-08 …

内含子属于非编码区?如题?如果不是,那为什么说真核生物的编码区不连续呢?只是编码序列(即外显子)不  2020-05-17 …

快速排序法问题设待排关键码序列为(25,18,9,33,67,82,53,95,12,70),要按  2020-07-01 …

求解设待排序的记录共7个,排序码分别为(8,3,2,5,9,1,6)对其进行冒泡排序.已排序码求解  2020-07-23 …

(1)人类基因组中非编码序列远远多于编码序列,能够编码蛋白质的序列仅占3%。如何根据这一点理解基因  2020-07-29 …

在“再探动滑轮”的活动中,小强用如图所示的动滑轮提升钩码,改变钩码的数量,在正确操作的情況下,测得的  2020-11-10 …

如图是真核生物染色体组成.1、2、3、4分别表示()A.胸腺嘧啶、非编码区、内含子、外显子B.尿嘧啶  2020-12-02 …

(2014•上海)在一个典型的基因内部,转录起始位点(TSS)、转录终止位点(TTS)、起始密码子编  2020-12-22 …

在一个典型的基因内部,转录起始位点(TSS)、转录终止位点(TTS)、起始密码子编码序列(ATG)、  2020-12-24 …

一般情况下真核细胞的一个基因只能编码一种蛋白质,以下说法正确的是()A.它的编码序列只含一个外显子和  2020-12-24 …