有这样一个题:
将一个数的最后一位数放在第一位那么产生的新数为原数的二倍,那么怎么求这个数??
这个数 最少也有18位 ,
这是我用笔推出来的!
我用循环来做的可是不能实现
怎么办?
将一个数的最后一位数放在第一位那么产生的新数为原数的二倍,那么怎么求这个数??
这个数 最少也有18位 ,
这是我用笔推出来的!
我用循环来做的可是不能实现
怎么办?
解决方案 »
- VB 程序运行时提示: 未处理COMException
- 求教:如何让我的窗口永远在指定的窗口上一层?
- 用VB实现分支定界算法的代码
- 查询数据库
- 特急求助!(外地出差急用)vb+windows98/2000下怎么设置键盘鼠标钩子?各位,不管会不会帮个场也好啊!
- 将一个字符串通过写文件的方式写入 a.bat 文件中,但它将字符串的双引号都写入去了,请问如何只写入字符串的内容而不写入双引号?
- 新手求教!!
- 求助。。用EXITWINDOWSEX来关闭系统怎么不行啊?
- 急!如何在VB中控制扫描仪,并按要求取得图象?
- 小弟受到欺负,大家帮我报仇,程序员不是好欺负的!帮我想办法!
- 如何执行带开关的DOS程序!
- 求救:如何用代码实现DTPicker控件与UPDown控件
Dim i As Long
Dim num As String
i = 10
Do While True
i = i + 1
num = Format(i, "0")
num = Right(num, 1) + Mid(num, 1, Len(num) - 2) + Left(num, 1)
If Val(num) = 2 * i Then
Exit Do
End If
Loop
MsgBox Str(i)
End Sub
楼主说至少要算到18位,呵呵呵而你的循环质量也太低了吧,起码要判断一下 最后一位数要大于第一位数呀才进行比较嘛
Dim n As Long, t As Long
Dim m As Long
Dim flag As Boolean Do
DoEvents
t = t + 2
m = Val(Mid$(Str$(t), 1, 1))
For n = m To 9
labtest.Caption = t * 10 + n
If Val(Str$(n) + Str$(t)) = (t * 10 + n) * 2 Then
Exit Do
End If
Next n
Loop
labis.Caption = Val(n)labis , labtest是两个Label控件,分别显示这个符合条件的数和当前测试的数。因为进行位置变换的数是原数的一倍,那么原数的十位一定要被2整除。所以程序中有一句: t=t+2 ,而不是t=t+1。t是原数的最高位到十位。t*10+n就是要测试的数。m是t的最高位。要满足条件,最低位一定要大于最高位,所以最低位n=m to 9
只能自己定义数据结构计算了。用一般方法,我估计很难很快算出来。
我再想想别的方法