标题:[求助]找平方数的问题
只看楼主
红影
Rank: 1
等 级:新手上路
威 望:2
帖 子:659
专家分:0
注 册:2006-2-22
结帖率:66.67%
 问题点数:0 回复次数:7 
[求助]找平方数的问题
程序用于找出1到100之间的两个数,使其和与差均为平方数。
例如 5和4、10和6、13和12的和与差均为平方数。
以下是我编写的代码
运行后我发现一个严重问题
输出的数组重复
比如
输出 4 5
5 4
6 10
10 6
等等
这些其实是重复的
有什么办法可以让重复的数组不再出现

Private Sub Command1_Click()
Dim m As Integer, n As Integer
For i = 1 To 100
For j = 1 To 100
m = i + j
n = Abs(i - j)
If CInt(Sqr(m)) = Sqr(m) And CInt(Sqr(n)) = Sqr(n) Then
Print i, j
End If
Next j
Next i
End Sub

Private Sub Command2_Click()
End
End Sub
搜索更多相关主题的帖子: 平方数 Integer For Abs 
2006-04-24 20:57
jackboy
Rank: 2
等 级:论坛游民
帖 子:163
专家分:27
注 册:2005-10-9
得分:0 

for j=i to 100
这样试试


2006-04-24 21:12
红影
Rank: 1
等 级:新手上路
威 望:2
帖 子:659
专家分:0
注 册:2006-2-22
得分:0 
2楼的方法可行
Very Good!!!
还有个问题时关于这个程序输出结果的格式
i j
i j
i j
. .
. .
. .
是数行两列输出
如果我想让它的输出的格式为横行两行输出
比如: i i i i ……
j j j j ……
print语句应该如何改写?

生命中,不断有人离开和进入。于是,看见的,看不见了;记住的,遗忘了。
2006-04-24 21:44
红影
Rank: 1
等 级:新手上路
威 望:2
帖 子:659
专家分:0
注 册:2006-2-22
得分:0 
格式问题没有人帮忙解决吗?
自顶一下
大家帮忙想想办法啊

生命中,不断有人离开和进入。于是,看见的,看不见了;记住的,遗忘了。
2006-04-25 10:39
google
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:22
帖 子:3418
专家分:23
注 册:2005-11-1
得分:0 

Private Sub Command1_Click()
Dim m As Integer, n As Integer
For i = 1 To 100
For j = 1 To i '只执行J《I的情况,来避免楼主的问题
m = i + j
n = Abs(i - j)
If CInt(Sqr(m)) = Sqr(m) And CInt(Sqr(n)) = Sqr(n) Then
Print i, j
End If
Next j
Next i
End Sub

Private Sub Command2_Click()
End
End Sub



祝天下所有母亲幸福安康!~
2006-04-25 12:41
google
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:22
帖 子:3418
专家分:23
注 册:2005-11-1
得分:0 

Private Sub Command1_Click()
Dim m As Integer, n As Integer
For i = 1 To 100
For j = 1 To i-1 '只执行J《I的情况,并且过滤了0引起的情况,来避免楼主的问题
m = i + j
n = Abs(i - j)
If CInt(Sqr(m)) = Sqr(m) And CInt(Sqr(n)) = Sqr(n) Then
Print i, j
End If
Next j
Next i
End Sub

Private Sub Command2_Click()
End
End Sub


祝天下所有母亲幸福安康!~
2006-04-25 12:42
google
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:22
帖 子:3418
专家分:23
注 册:2005-11-1
得分:0 
打印的问题可以用label来做

Private Sub Command1_Click()
Dim m As Integer, n As Integer
For i = 1 To 100
For j = 1 To i-1 '只执行J《I的情况,并且过滤了0引起的情况,来避免楼主的问题
m = i + j
n = Abs(i - j)
If CInt(Sqr(m)) = Sqr(m) And CInt(Sqr(n)) = Sqr(n) Then
Label1.Caption = Label1.Caption & " " & i
Label2.Caption = Label2.Caption & " " & j
End If
Next j
Next i
End Sub

Private Sub Command2_Click()
End
End Sub


把PRINT换成LABEL显示


祝天下所有母亲幸福安康!~
2006-04-25 13:06
红影
Rank: 1
等 级:新手上路
威 望:2
帖 子:659
专家分:0
注 册:2006-2-22
得分:0 

版主就是版主!!!
果然厉害!!!
这正是我想要的效果!!!
谢了!!!


生命中,不断有人离开和进入。于是,看见的,看不见了;记住的,遗忘了。
2006-04-25 14:58



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-59834-1-1.html




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

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