帮我进来看到题目 就10行 帮帮忙 在线等

lhbyjx 2008-01-04 10:55:42
设N是一个四位数,它的 9 倍恰好是其反序数(例如:1234的反序数是4321),求N的值。



Public Class Form1

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim x, a, b, c, d, q As Integer
For x = 1000 To 10000
q = x
a = x / 1000
b = (x Mod 1000) / 100
c = (x Mod 100) / 10
d = (x Mod 10)
If (q * 9) = (1000 * d + 100 * c + 10 * b + a) Then
TextBox1.Text() = q
End If
Next
End Sub
End Class
...全文
44 点赞 收藏 8
写回复
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
中间一段修改下
  Dim x, a, b, c, d, q As Integer
For x = 1000 To 1111
q = x
a = x \ 1000
b = x \ 100 Mod 10
c = x \ 10 Mod 10
d = x Mod 10
If (q * 9) = (1000 * d + 100 * c + 10 * b + a) Then
Text1.Text() = q
End If
Next
回复
嗯 我没注意 只看到他算法部分有错误
回复
DIM A AS LONG
DIM B AS LONG
DIM C AS LONG
DIM D AS LONG
DIM I AS LONG
FOR I=1000 TO 1111
A=I MOD 10
B=(I\10) MOD 10
C=(I\100) MOD 10
D=I\1000
IF I*9 = A*1000+B*100+C*10+D THEN ME.PRINT I
NEXT

和楼上一样,只是楼上定义变量写法有问题,Dim x, a, b, c, d, q As Integer只有最后一个指定了整形,前面4个是无类型的。
回复
lhbyjx 2008-01-04
我用java解出来了是 1089 可是改成VB就不对了 算不出来了
我没学过vb 可是老师要让用vb教作业 我不知道改的过程中哪里出错了
回复
波导终结者 2008-01-04
困了,B和C的关系弄错,有一个解1089
回复
波导终结者 2008-01-04
ABCD * 9=DCBA
A只能为1,D只能为9
1BC9 * 9=9CB1
B=C+8,B又只能为0和1
所以C只能为2和3
又1111是上限,所以B只能为0
所以C只能为2
1029*9=9261
所以无解
回复
波导终结者 2008-01-04
弄错了,最小可能值是1000
回复
波导终结者 2008-01-04
abcd * 9 =dcba
abcd最小可能值为1111,此时1111*9=9999
再大就五位数了。

你这题目哪来的?
回复
发动态
发帖子
VB基础类
创建于2007-09-28

7453

社区成员

VB 基础类
申请成为版主
社区公告
暂无公告