VB做一个计算九宫格程序要求 9 有九个数字 (3*3 的) 横,竖,斜 边的的数字加上 都是15 我的要求是 (用VB) 按一个按钮就立即帮我们写出答案我做了 可是水平有点差 那个程序好像用1,2天的时
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/24 21:53:58
VB做一个计算九宫格程序要求 9 有九个数字 (3*3 的) 横,竖,斜 边的的数字加上 都是15 我的要求是 (用VB) 按一个按钮就立即帮我们写出答案我做了 可是水平有点差 那个程序好像用1,2天的时
VB做一个计算九宫格程序
要求 9 有九个数字 (3*3 的) 横,竖,斜 边的的数字加上 都是15
我的要求是 (用VB) 按一个按钮就立即帮我们写出答案
我做了 可是水平有点差 那个程序好像用1,2天的时间才写出的
对了 九宫格的答案 我要的是算法
一楼 我的想法就是那样的 可是我不知道怎么排列?
VB做一个计算九宫格程序要求 9 有九个数字 (3*3 的) 横,竖,斜 边的的数字加上 都是15 我的要求是 (用VB) 按一个按钮就立即帮我们写出答案我做了 可是水平有点差 那个程序好像用1,2天的时
定义9个变量a,b,c,d,e,f,g,h,i
1-9 分别赋给他们,共9的阶乘362880种,
a b c
d e f
g h i
做判断a+b+c=15?
d+e+f=15?
...
都符合abcdefghi值,输出~
唉,你也太懒了,我写的代码:
--------------------------------------------------
Dim b(0 To 8) As Integer '记忆每个位数循环的次数
Dim a(0 To 8) As Integer '数组每个数代表1宫内的数字
Public n As Integer 'n时位数,n=1 说明时第一位数字,n=9当然时最后一位
Private Sub Command1_Click()
n = 1
Call pailie
End Sub
Private Sub pailie()
Dim j As Integer
j = 1
For b(n - 1) = 1 To 9
If panduan1(b(n - 1),n) = True Then
a(n - 1) = b(n - 1)
If n = 9 Then
If panduan2 = True Then
For j = 1 To 9
Label1.Caption = Label1.Caption & a(j - 1)
Next j
End If
Else
n = n + 1
Call pailie
End If
End If
Next b(n - 1)
b(n - 1) = 1 '退回上一循环 记忆清空
n = n - 1 '退回上一循环位数-1
End Sub
Private Sub Form_Load()
n = 1
End Sub
Private Function panduan1(x As Integer,n As Integer) As Boolean
'判断有无重复数字,比如122.第3位不能为2则次函数位false
Dim y As Integer
If n = 1 Then
panduan1 = True
Exit Function
End If
For y = 1 To n - 1
If a(y - 1) = x Then
panduan1 = False
Exit Function
End If
Next y
panduan1 = True
End Function
Private Function panduan2() As Boolean
'判断是否符合九宫的条件,成功的话则记下
If a(0) + a(1) + a(2) = 15 And a(3) + a(4) + a(5) = 15 And a(6) + a(7) + a(8) = 15 Then
If a(0) + a(3) + a(6) = 15 And a(1) + a(4) + a(7) = 15 And a(2) + a(5) + a(8) = 15 Then
If a(0) + a(4) + a(8) = 15 And a(2) + a(4) + a(6) = 15 Then
panduan2 = True
End If
End If
End If
End Function
---------------------------------
运行结果:
276951438294753618438951276492357816618753294672159834816357492834159672
没换行.结果是对的.
2 7 6
9 5 1
4 3 8
等等