请教两个vb的难题~~~~

ledon1981 2005-08-11 08:49:29
题目为:
1. 勾股定理中3个数的关系是:a^2+b^2=c^2.编写程序,输出30以内满足上述关系的整数组合.
例如:3,4,5 是一个整数组合.





2. 编写程序,打印如下所示的"数字金字塔":

1
1 2 1
1 2 3 2 1
1 2 3 4 3 2 1
1 2 3 4 5 4 3 2 1
1 2 3 4 5 6 5 4 3 2 1
1 2 3 4 5 6 7 6 5 4 3 2 1
1 2 3 4 5 6 7 8 7 6 5 4 3 2 1
1 2 3 4 5 6 7 8 9 8 7 6 5 4 3 2 1



求高手悉心指导,不胜感激..........
...全文
286 29 打赏 收藏 转发到动态 举报
写回复
用AI写文章
29 条回复
切换为时间正序
请发表友善的回复…
发表回复
jxgzay 2005-08-14
  • 打赏
  • 举报
回复
问题是简单不复杂的,那么多人有答案我就不凑热闹了,有可能就接点分:)
ledon1981 2005-08-14
  • 打赏
  • 举报
回复
1
1 2 1
1 2 3 2 1
1 2 3 4 3 2 1
1 2 3 4 5 4 3 2 1
1 2 3 4 5 6 5 4 3 2 1
1 2 3 4 5 6 7 6 5 4 3 2 1
1 2 3 4 5 6 7 8 7 6 5 4 3 2 1
1 2 3 4 5 6 7 8 9 8 7 6 5 4 3 2 1

想问一下,如果数字中间有空格的话,那么是否应该用tab()函数来实现呢?
northwolves 2005-08-12
  • 打赏
  • 举报
回复
2.
Private Sub Command1_Click()
Dim i As Integer, J As Integer, k As Integer, s(16) As String
For i = 1 To 9
For J = 0 To 16
k = i - Abs(8 - J)
s(J) = IIf(k > 0, k, " ")
Next
Me.Print Join(s, " ")
Next
End Sub
LWJFighting 2005-08-12
  • 打赏
  • 举报
回复
我怀疑我还能不能说的什么有用的了:(来迟了…………
wwh999 2005-08-12
  • 打赏
  • 举报
回复
真是,,,迟了啊。不说了。
脆皮大雪糕 2005-08-12
  • 打赏
  • 举报
回复
sigh!
不就迟点看到贴子吗?连插嘴的份都没有了!
haen_zhou 2005-08-12
  • 打赏
  • 举报
回复
papa
szjhxu 2005-08-12
  • 打赏
  • 举报
回复
算了,我就不解答了
of123 2005-08-11
  • 打赏
  • 举报
回复
差别没有那么大,后例的循环有问题,输出重复。更改
......
For a = 1 To 30
For b = a To 30
......

4.27906249999796
of123 2005-08-11
  • 打赏
  • 举报
回复
使用 i * i 的方式可能比 i^2 以及 sqr() 更快:

Dim i As Integer, j As Integer, k As Integer, n As Integer
Dim a As Integer, tt As Double
tt = Timer
For a = 1 To 1000
For i = 1 To 30
For j = i To 30
n = i * i + j * j
For k = j + 1 To 30
If n = k * k Then Debug.Print "a=" & i & " b=" & j & " c=" & k
Next k
Next j
Next i
Next a
Debug.Print Timer - tt

3.02109375000146


Dim b As Integer
Dim c As Integer
Dim i As Integer, tt As Double

tt = Timer
For i = 1 To 1000
For a = 1 To 30
For b = 1 To 30
c = Sqr(a ^ 2 + b ^ 2)
If c <= 30 Then
If c ^ 2 = a ^ 2 + b ^ 2 Then Debug.Print "a=" & a & " b=" & b & " c=" & c
End If
Next b
Next a
Next i
Debug.Print Timer - tt

7.02937499999825


hzh_net 2005-08-11
  • 打赏
  • 举报
回复
Private Sub Command2_Click()
Dim i As Integer, j As Integer, str As String
For i = 1 To 9
str = String(9 - i, " ")
For j = 1 To i
str = str & j
Next j
For j = i - 1 To 1 Step -1
str = str & j
Next j
Debug.Print str
Next i
End Sub
of123 2005-08-11
  • 打赏
  • 举报
回复
第一题的效率还可以提高:
Dim i As Integer, j As Integer, k As Integer, n As Integer

For i = 1 To 30
For j = i To 30
n = i * i + j * j
For k = j + 1 To 30
If n = k * k Then Debug.Print i, j, k
Next k
Next j
Next i
sqfeiyu 2005-08-11
  • 打赏
  • 举报
回复
學習要通過自已努力研究才會有提高的.
還是自已的方法最有用
of123 2005-08-11
  • 打赏
  • 举报
回复
输出结果:
5 12 13
6 8 10
7 24 25
8 15 17
9 12 15
10 24 26
12 16 20
15 20 25
18 24 30
20 21 29

第二题:
Dim i As Integer, j As Integer, str1 As String

For i = 1 To 9
str1 = String(9 - i, " ")
For j = 1 To i
str1 = str1 & j
Next j
For j = i - 1 To 1 Step -1
str1 = str1 & j
Next j
Debug.Print str1
Next i
sqfeiyu 2005-08-11
  • 打赏
  • 举报
回复
2.三角形
Private Sub Command1_Click()
stmp = ""
For i = 1 To 9
For j = 9 To -9 Step -1
If Abs(j) < i + 1 And j <> 0 And j <> -1 Then
stmp = stmp & i + 1 - Abs(j)
ElseIf j <> 0 And j <> -1 Then
stmp = stmp & " "
End If
Next
stmp = stmp & vbCrLf
Next
Me.Print stmp
End Sub
hzh_net 2005-08-11
  • 打赏
  • 举报
回复
Private Sub Command1_Click()
Dim a As Integer
Dim b As Integer
Dim c As Integer

For a = 1 To 30
For b = 1 To 30
c = Sqr(a ^ 2 + b ^ 2)
If c <= 30 Then
If c ^ 2 = a ^ 2 + b ^ 2 Then Debug.Print "a=" & a & " b=" & b & " c=" & c
End If
Next b
Next a
End Sub
-----------------------------
a=3 b=4 c=5
a=4 b=3 c=5
a=5 b=12 c=13
a=6 b=8 c=10
a=7 b=24 c=25
a=8 b=6 c=10
a=8 b=15 c=17
a=9 b=12 c=15
a=10 b=24 c=26
a=12 b=5 c=13
a=12 b=9 c=15
a=12 b=16 c=20
a=15 b=8 c=17
a=15 b=20 c=25
a=16 b=12 c=20
a=18 b=24 c=30
a=20 b=15 c=25
a=20 b=21 c=29
a=21 b=20 c=29
a=24 b=7 c=25
a=24 b=10 c=26
a=24 b=18 c=30
zuoxingyu 2005-08-11
  • 打赏
  • 举报
回复
不要问了,肯定是作业题目

第一题,随便找本VB的书上都会有个算法介绍的,自己不能去找找吗??
第二题:www.google.com想好你的关键字
of123 2005-08-11
  • 打赏
  • 举报
回复
作业题?

1
Dim i As Integer, j As Integer, k As Integer, n As Integer

For i = 1 To 30
For j = i To 30
n = i * i + j * j
For k = 1 To 30
If n = k * k Then Debug.Print i, j, k
Next k
Next j
Next i
yorkness 2005-08-11
  • 打赏
  • 举报
回复
1、
Private Sub Command1_Click()
Dim Result(100) As String

Dim i As Integer
Dim j As Integer
Dim k As Integer

Dim n As Integer
n = 0
For i = 1 To 30
For j = i To 30
For k = j To 30
If i * i + j * j = k * k Then
Result(n) = i & "," & j & "," & k
n = n + 1
End If
Next
Next
Next
End Sub

2、
Private Sub Command1_Click()
Dim Result(10) As String
Dim i As Integer
Dim j As Integer

For i = 1 To 9
Result(i - 1) = String(2 * (9 - i), " ")
For j = 1 To i
Result(i - 1) = Result(i - 1) & " " & j
Next j
For j = i - 1 To 1 Step -1
Result(i - 1) = Result(i - 1) & " " & j
Next
Next i

End Sub
ledon1981 2005-08-11
  • 打赏
  • 举报
回复
随意显示,只要实现这个三角形即可~~
加载更多回复(9)
logo 设计不会,就这样先凑合了写道 Fuseblog预备开发带在线SHOP功能的个人博客系统.仿照Appfuse 提供一个完全自动化的ant构建脚本.在线SHOP的数据库建模图例已经 在博客中贴出.感兴趣的和我一起搭建,嘻嘻 文档博客地址: http://forum.sinomagazine.com 开发环境: Jcreator-4.5 JDK-1.5 Ant-1.6.1 MYSQL-5 Tomcat-5.5 Spring-2.5.6 Ibatis-2.3.4 问题事项: 1.在windows系统中,命令行中执行ant命令时,当指定的 构建脚本文件中包含中文字符,而构建脚本文件的编码是UTF-8时将会 Invalid byte 1 of 1-byte UTF-8 sequence. 的错误.这个问题尚未 知解决,故先采用GBK的编码. 2.在Jcreator中创建的项目,不支持UTF-8编码,缺省GBK. 以下先列出初步的的ant构建文件的代码: build.xml vb2005xu 2009-06-02 回复 (3) 相关讨论 持续集成简单总结 一、理论篇: 持续集成鼓励尽量短周期内项目团队的代码提交,同时保证每次check in都不会损害我们的构建通过。它跟每日构建的区别就在于代码提交频率更高(一般为一个小时),构建的频率也更高,这样做的目的就是为了快速反馈,使得BUG越早被发现,并能以邮件或者消息(甚至短信)的形式快速反馈给开发人员,从而快速解决问题,并保证构建成功。 二、工具篇: 持续集成 ... by lixw 2008-09-09 回复 (3) 网络相册开发(6)——ant 自动 ... 在工程目录下创建libs/hibernate/ ,放入 hibernate-tools-3.2.0.ga.jar jtidy-4aug2000r7-dev.jar build.properties project.name=sw project.version=1.0 basedir=. build.dir =${basedir}/build web.dir = ${basedir}/WebR ... by vyyv 2009-03-12 回复 (1) ant配置文件实例详解 build.xml 代码 xml version="1.0" encoding="UTF-8"?> 难题,有很多种解决方案。例如,可以使用j2mepolish,请参考本人以前发表的文章《使用J2mePolish的build和preprocess功能》。本文主要讨论如何使用antenna来解决这个问题。 Antenna介绍 Ant ... by pandonix 2007-08-28 回复 (9) 用Ant 来编译打包您的Anroid应用 ... 通过 activityCreator.py --out myproject your.package.name.ActivityName 命令可以生成一个project ,生成project下面有个bulid.xml 文件,那个东西就可以帮你打包生成了。 来看下ant是怎么做的。 < project name= "tax-calculator" default= "package" > < property name= "src.dir" location= "src" / > ... by article2008 2008-07-30 回复 (0) 代码备份build.xml

7,763

社区成员

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

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