学进去-教育应平等而普惠
试题
类型:操作题
难度系数:0.40
所属科目:高中信息技术
从前有一只九尾狐叫小九,他拥有超高的智商,喜欢数学推理。最近他喜欢上了利用约瑟夫环玩推理纸牌的游戏。即给定n张环形排列的纸牌,选定最小的一张牌为起始位置。第一次取第1张牌(起始位置的纸牌),第二次间隔1张取第3张纸牌,第三次间隔2张取第6张纸牌,……直到取完为止(如果取的位置超过n,重新从1位置取)。如果有4张纸牌,那么取的纸牌编号依次为1,3,4,2。同样,可以知道每张纸牌的被取走的顺序如下表。
序号
1    2    3    4
1
轮次
   2    3    4
1     1    1    1
2
轮次
2       4
2     2     2
3
轮次
    2
3      3
4
轮次

4
纸牌被取走顺序也可以理解为纸牌存留的轮次。每次取走一张纸牌后,下一轮第一张纸牌编号为该纸牌的后一张。上述例子中3第二个被取,留存轮次2,下一轮的第一张纸牌为剩下的纸牌留存轮次增加。
现在,只要给小九纸牌的数量n,他能通过逆推法快速地计算出取的纸牌编号顺序,方如下(以 为例):

逆推得到的纸牌顺序

1

4

2

3

最终得到的纸牌编号

1

2

3

4

即在第i轮,上一轮纸牌轮次加1,并在后面增加一张轮次为1的纸牌。然后将轮次为1放在最前的位置,最后整体循环向右移动次。直到n轮后,可知每张纸牌被取走的顺序,根据此顺序,得到每次取走纸牌的编号。

轮次

数组

1    2    3    4

1

a(1)=1

1

2

④前一轮所有值加1
②第二位增加数值1
③将轮次为1的数放在最前
④整体右移动2位
2
2    1
1    2
1    2

3

①前一轮所有值加1
②第三位增加数值1
③将轮次为1的数放在最前
④整体右移动1位
2    3
2    3    1
1    2    3
3    1    2

4

①前一轮所有值加1
②第四位增加数值1
③将轮次为1的数放在最前
④整体右移动0位
4    2    3
4    2    3    1
1    4    2    3
1    4    2    3
根据以上算法小九编写了如下VB程序,请回答下列问题。
(1)由题意可知,当n的值为6时,1~6张纸牌被取走顺序为________。
(2)请在划线处填入合适的代码。
Dim n As Integer
Dim a(1 To 100) As Integer
Private Sub Commandl_Click ()
Dim i As Integer, j As Integer, k As Integer
Dim ans As String, x As Integer
n= Val (Text1.Text)
a(1)=1
For i =2 To n
For j= 1 To i-1

_________

Next j
j=i
Do While j>1

a(j)=a(j-1)

j=j-1

Loop
a(1)=1
For j=1 To n-i

k=a(1)

___________

a (x)=k

Next j
Next i
ans  = " "
For i = 1 To n

ans = ans + Str(a(i))

Next i
Labell.Caption ="序列为: "+ ans
End Sub
Function yd(i As Integer) As Integer
Dim j As Integer, tmp As Integer
For j = i To 2 Step -1
tmp = j + 1
If tmp > i Then ________
a(tmp)= a(j)
Next j
yd = j+ 1
End Function
编辑解析赚收入
收藏
|
有奖纠错

同类型试题

优质答疑

y = sin x, x∈R, y∈[–1,1],周期为2π,函数图像以 x = (π/2) + kπ 为对称轴
y = arcsin x, x∈[–1,1], y∈[–π/2,π/2]
sin x = 0 ←→ arcsin x = 0
sin x = 1/2 ←→ arcsin x = π/6
sin x = √2/2 ←→ arcsin x = π/4
sin x = 1 ←→ arcsin x = π/2

用户名称
2019-09-19

y = sin x, x∈R, y∈[–1,1],周期为2π,函数图像以 x = (π/2) + kπ 为对称轴
y = arcsin x, x∈[–1,1], y∈[–π/2,π/2]
sin x = 0 ←→ arcsin x = 0
sin x = 1/2 ←→ arcsin x = π/6
sin x = √2/2 ←→ arcsin x = π/4
sin x = 1 ←→ arcsin x = π/2

用户名称
2019-09-19
我要答疑
编写解析
解析:

奖学金将在审核通过后自动发放到帐

提交
我要答疑
我要答疑:
提交