| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 885 人关注过本帖
标题:[求助]请教简化和完善程序
只看楼主 加入收藏
红影
Rank: 1
等 级:新手上路
威 望:2
帖 子:659
专家分:0
注 册:2006-2-22
结帖率:66.67%
收藏
 问题点数:0 回复次数:10 
[求助]请教简化和完善程序

一个两位的正整数,如果将它的个位数字与十位数字对调,则产生另一个正整数,后者叫做前者的对调数.
若给定一个两位的正数,请找到一个两位的正整数,使得这两个整数之和等于他们各自的对调数之和.
例如:12+32=21+23.
编写程序,输入一个两位的正整数,把具有这种特征的每一对两位正整数都找出来.
以下是我自己写的程序
请教高手将其完善和简化
谢谢


Private Sub Form_Click()
Dim x As Integer, y As Integer, m As Integer, n As Integer, a As Integer, b As Integer
a = Val(InputBox("请输入一个两位正整数"))
x = a \ 10
y = a Mod 10
For m = 1 To 9
For n = 0 To 9
b = m * 10 + n
If a + b = (y * 10 + x) + (n * 10 + m) Then
Print a, b
End If
Next n
Next m
Print
End Sub

搜索更多相关主题的帖子: 数字 Integer 整数 
2006-04-24 11:57
红影
Rank: 1
等 级:新手上路
威 望:2
帖 子:659
专家分:0
注 册:2006-2-22
收藏
得分:0 
[url=http://wpa.]点击这里给我发消息[/url]

生命中,不断有人离开和进入。于是,看见的,看不见了;记住的,遗忘了。
2006-04-24 19:06
xinfresh
Rank: 4
等 级:贵宾
威 望:13
帖 子:594
专家分:0
注 册:2006-1-13
收藏
得分:0 

想优化还是很简单的,不过优化就不是程序问题了,是数学问题:
如果你已知的数是ab(10a+b)
要求的数是xy(10x+y)
很明显你的要求是:
(10a+b)+(10x+y)=(10b+a)+(10y+x)
化简:
a+x=b+y
如果想保证xy是个两位数就For x=1 to 9
不然就For x=0 to 9也行,看你的要求了,后面的你自己做吧


E-mail:xinfresh@QQ:383094053校内:http:///getuser.do?id=234719042
2006-04-24 19:53
红影
Rank: 1
等 级:新手上路
威 望:2
帖 子:659
专家分:0
注 册:2006-2-22
收藏
得分:0 
我再研究看看
[url=http://wpa.qq.com/msgrd?V=1&Uin=12471737&Site=www.bbs.bc-cn.net&Menu=yes]点击这里给我发消息[/url]

生命中,不断有人离开和进入。于是,看见的,看不见了;记住的,遗忘了。
2006-04-24 20:56
红影
Rank: 1
等 级:新手上路
威 望:2
帖 子:659
专家分:0
注 册:2006-2-22
收藏
得分:0 
Option Explicit

Private Function getSwapNum(ByVal n As Integer) As Integer

getSwapNum = CInt(Right(CStr(n), 1) & Left(CStr(n), 1))

End Function

Private Sub Command1_Click()
Dim myNum As Integer
Dim i As Integer
myNum = CInt(InputBox("请输入您的整数:"))

If myNum < 11 Or myNum > 99 Then
MsgBox "不是两位数!", vbOKOnly + vbCritical
Exit Sub
End If

For i = 11 To 99
If myNum + i = getSwapNum(myNum) + getSwapNum(i) Then Print myNum & "+" & i & "=" & getSwapNum(myNum) & "+" & getSwapNum(i)
Next
End Sub

生命中,不断有人离开和进入。于是,看见的,看不见了;记住的,遗忘了。
2006-04-26 15:59
xinfresh
Rank: 4
等 级:贵宾
威 望:13
帖 子:594
专家分:0
注 册:2006-1-13
收藏
得分:0 
你怎么就不明白我的意思呢?
Dim a As Integer, b As Integer
a = CInt(Left(Text1.Text, 1))
b = CInt(Right(Text1.Text, 1))
Dim m As Integer, n As Integer
For m = 1 To 10 - b
If m <> b Then
n = b + m - a
Print CStr(a) & CStr(b) & "+" & CStr(n) & CStr(m) & "=" & CStr(m) & CStr(n) & "+" & CStr(b) & CStr(a)
End If
Next

E-mail:xinfresh@QQ:383094053校内:http:///getuser.do?id=234719042
2006-04-27 18:16
红影
Rank: 1
等 级:新手上路
威 望:2
帖 子:659
专家分:0
注 册:2006-2-22
收藏
得分:0 
以下是引用xinfresh在2006-4-27 18:16:00的发言:
你怎么就不明白我的意思呢?
Dim a As Integer, b As Integer
a = CInt(Left(Text1.Text, 1))
b = CInt(Right(Text1.Text, 1))
Dim m As Integer, n As Integer
For m = 1 To 10 - b
If m <> b Then
n = b + m - a
Print CStr(a) & CStr(b) & "+" & CStr(n) & CStr(m) & "=" & CStr(m) & CStr(n) & "+" & CStr(b) & CStr(a)
End If
Next

不能这么写噢

会导致错误:类型不匹配


你的意思我看明白了,谢谢啊!


生命中,不断有人离开和进入。于是,看见的,看不见了;记住的,遗忘了。
2006-04-29 18:12
xinfresh
Rank: 4
等 级:贵宾
威 望:13
帖 子:594
专家分:0
注 册:2006-1-13
收藏
得分:0 
我都调试通过了啊

E-mail:xinfresh@QQ:383094053校内:http:///getuser.do?id=234719042
2006-04-29 18:35
红影
Rank: 1
等 级:新手上路
威 望:2
帖 子:659
专家分:0
注 册:2006-2-22
收藏
得分:0 
以下是引用xinfresh在2006-4-29 18:35:00的发言:
我都调试通过了啊

我知道我为什么通不过了

原来我没有输入数字就单击窗体了,所以显示“类型不匹配”


生命中,不断有人离开和进入。于是,看见的,看不见了;记住的,遗忘了。
2006-04-29 19:54
xinfresh
Rank: 4
等 级:贵宾
威 望:13
帖 子:594
专家分:0
注 册:2006-1-13
收藏
得分:0 
死给你看……

E-mail:xinfresh@QQ:383094053校内:http:///getuser.do?id=234719042
2006-04-30 17:24
快速回复:[求助]请教简化和完善程序
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016802 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved