VB,求1000以內同構數,不要太深奧,新手上路
uj5u.com熱心網友回復:
正整數n若是它平方數的尾部,則稱n為同構數。例如,6是其平方數36的尾部,76是其平方數5776的尾部,6與76都是同構數。參考自 https://wenda.so.com/q/1365738830066656?src=https://bbs.csdn.net/topics/300
uj5u.com熱心網友回復:
寫好了,很簡單,用字串作比較就行了:
Private Sub Form_Load()
Dim i As Long
For i = 1 To 1000
Dim p As Long
p = i ^ 2
Dim ilen As Integer
ilen = Len(CStr(i))
If Right(CStr(p), ilen) = CStr(i) Then
Debug.Print i
End If
Next
End Sub
運行示例:

下載地址:
鏈接:https://pan.baidu.com/s/1vdfn1SHTMs4n-ZpCeyZxqQ
提取碼:x7a0
uj5u.com熱心網友回復:
單純就數學來看,如果 a 是個 k 位數,a 為同構數表示 a^2 - a 是 10^k 的倍數,所以 a*(a-1) 是 2^k 及 5^k 的倍數所以 a 和 a-1 一個是 2^k 的倍數,另一則是 5^k 的倍數
Public Sub ListIsoNum(n As Integer)
Dim j As Integer
Dim k As Integer
Debug.Print 1
For k = 1 To n
For j = (2 ^ (k - 1) \ 5 + 1) To 2 ^ k - 1
If (j * 5 ^ k - 1) Mod (2 ^ k) = 0 Then
Debug.Print (j * 5 ^ k)
End If
If (j * 5 ^ k + 1) Mod (2 ^ k) = 0 Then
Debug.Print (j * 5 ^ k + 1)
End If
Next j
Next k
End Sub
不過因為 VB 能處理整數范圍, n 用 10 代入就會出現溢位,

轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/35151.html
標籤:VB基礎類
上一篇:vb如何獲取mcgs里的開關量。
下一篇:求助大佬,vb
