经典 VB 求救

来源:百度知道 编辑:UC知道 时间:2024/05/12 15:44:49
市教育局为每个学校安排了一个区域,每个学校的同学都要坐在自己学校的区域内。
分给成功小学的区域是个等边三角型,这不是不重视成功小学,而是把难题给了成功小学,就是因为成功小学的同学更加优秀,因此这点小问题是难不倒他们的。大家根据座位区域,一下就设计出了以下座位安排方案:
1
2 3
4 5 6
7 8 9 10
11 12 13 14 15
……
我们可以看出,1号同学应该坐第一排的第一个,它的座标是(1,1)。而8号同学在第四排的第二个,它的座标是(4,2)。
现在的问题是,我们怎么样才能知道任意一个同学到底坐在哪个座位上(即这个座位的座标)呢?
我想,这个问题可难不倒你,你能编写一个程序帮助成功小学的同学解决这个问题吗?
输入格式:
输入一个整数N(1<=N<=32767),表示第N个同学。
输出格式:
输出两个整数i,j,中间用一个空格隔开,表示第N个同学的座位在第i行的第j个位置。
样例输入输出:
输入样例: 输出样例:
5 3 2

Dim a(1 To 256, 1 To 32767) As Long
n = InputBox("请输入学生编号")
For i = 1 To 256
For j = 1 To i
k = k + 1
a(i, j) = k
If a(i, j) = n Then
Print n; i; j
Exit For
Exit For
End If
Next
Next
类似于杨辉三角,简单问题,不要搞得太复杂@##¥

先加分

'需控件 Command1
Private Sub Command1_Click()
Dim N As Long, H As Long, L As Long, nEnd As Long
N = Val(InputBox("请输入学生序号:", "输入", 5))
If N < 1 Then Exit Sub
UpEnd N, H, nEnd 'H:得到上一排行号,nEnd:得到上一排末尾序号
H = H + 1 'N 号的行
L = N - nEnd 'N 号的列
MsgBox N & " " & H & " " & L '这是楼主要求的输出格式
'MsgBox N & " 号同学的座位:" & H & "排," & L & "列", vbInformation, "座位" '建议的输出格式
End Sub
Private Sub UpEnd(N As Long, H As Long, nEnd As Long)
H = 0: nEnd = 0
Do
If nEnd + H + 1 >= N Then Exit D