VB,求1000以内同构数

9527007. 2019-04-06 09:04:04
VB,求1000以内同构数,不要太深奥,新手上路
...全文
752 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
ypk9999 2019-04-20
  • 打赏
  • 举报
回复
单纯就数学来看,如果 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 代入就会出现溢位,
milaoshu1020 2019-04-07
  • 打赏
  • 举报
回复
写好了,很简单,用字符串作比较就行了:

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
milaoshu1020 2019-04-07
  • 打赏
  • 举报
回复
正整数n若是它平方数的尾部,则称n为同构数。例如,6是其平方数36的尾部,76是其平方数5776的尾部,6与76都是同构数。
引用自 https://wenda.so.com/q/1365738830066656?src=300

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧