asp:
围成一圈报数(123...报数)
围成一圈报数(123...报数)
围成一圈报数(123...报数)
<%
围成一圈报数(123...报数)
围成一圈报数(123...报数)
'围成一圈报数(123围成一圈报数(123...报数)报数)
围成一圈报数(123...报数)

围成一圈报数(123...报数)
Dim sAction
围成一圈报数(123...报数)sAction 
= Trim(Request.QueryString("action"))
围成一圈报数(123...报数)
If sAction = "do" Then
围成一圈报数(123...报数)    
Dim num, spe '人数,报数间隔
围成一圈报数(123...报数)
    num = Trim(Request.Form("num"))
围成一圈报数(123...报数)    spe 
= Trim(Request.Form("spe"))
围成一圈报数(123...报数)    
围成一圈报数(123...报数)    
'错误处理
围成一圈报数(123...报数)
    If IsNumeric(num) = False Or IsNumeric(spe) = False Then
围成一圈报数(123...报数)        OutputError 
"人数和报数间隔只能是数字"
围成一圈报数(123...报数)    
End If
围成一圈报数(123...报数)    
If num < spe Then
围成一圈报数(123...报数)        OutputError 
"人数不能小于报数间隔"
围成一圈报数(123...报数)    
End If
围成一圈报数(123...报数)    
围成一圈报数(123...报数)    
Dim aNum
围成一圈报数(123...报数)    
Dim i, j
围成一圈报数(123...报数)    
ReDim aNum(num)
围成一圈报数(123...报数)    
For i = 1 To num
围成一圈报数(123...报数)        aNum(i) 
= i '号数和数组下标一一对应
围成一圈报数(123...报数)
    Next
围成一圈报数(123...报数)
围成一圈报数(123...报数)    
Dim n_leaving, n_Pos, t '剩余人数, 当前报数人的位置
围成一圈报数(123...报数)
    n_leaving = num '初始化剩余人数
围成一圈报数(123...报数)
    n_Pos = 0 '初始化开始报数位置,0表示从1号开始报数,1表示从2号开始报数
围成一圈报数(123...报数)
    For i = 1 To n_leaving
围成一圈报数(123...报数)        
If n_leaving = 1 Then Exit For '如果最后只剩下一个人,报数结束
围成一圈报数(123...报数)

围成一圈报数(123...报数)        n_Pos 
= (n_Pos + spe) Mod n_leaving '算出下次报数的人位置
围成一圈报数(123...报数)
        If n_Pos = 0 Then
围成一圈报数(123...报数)            n_Pos 
= n_leaving    
围成一圈报数(123...报数)        
End If
围成一圈报数(123...报数)        
围成一圈报数(123...报数)        
'将已经报数的人移到数组的尾部
围成一圈报数(123...报数)
        t = aNum(n_Pos)
围成一圈报数(123...报数)        
For j = n_Pos To n_leaving-1
围成一圈报数(123...报数)            aNum(j) 
= aNum(j+1)    
围成一圈报数(123...报数)        
Next
围成一圈报数(123...报数)        aNum(n_leaving) 
= t
围成一圈报数(123...报数)
围成一圈报数(123...报数)        n_Pos 
= n_Pos - 1 '移走一个人后,需退一个位置
围成一圈报数(123...报数)
        n_leaving = n_leaving - 1 '留下继续报数的人数减1
围成一圈报数(123...报数)
    Next
围成一圈报数(123...报数)
围成一圈报数(123...报数)
围成一圈报数(123...报数)    
'输出结果
围成一圈报数(123...报数)
    Response.Write "<b>人数:</b>" & num & "<br/>"
围成一圈报数(123...报数)    Response.Write 
"<b>报数间隔:</b>" & spe & "<br/>"
围成一圈报数(123...报数)    Response.Write 
"<b>结果:</b>"
围成一圈报数(123...报数)    
Dim s
围成一圈报数(123...报数)    
For i=num To 1 Step -1
围成一圈报数(123...报数)        s 
= s & aNum(i) & ","
围成一圈报数(123...报数)    
Next
围成一圈报数(123...报数)    s 
= Left(s, Len(s)-1)
围成一圈报数(123...报数)    Response.Write s
围成一圈报数(123...报数)
围成一圈报数(123...报数)
End If
围成一圈报数(123...报数)
围成一圈报数(123...报数)
围成一圈报数(123...报数)
Sub OutputError(str)
围成一圈报数(123...报数)    Response.Write 
"<script language='javascript'>alert('" & str & "');history.back();</script>"
围成一圈报数(123...报数)    Response.End
围成一圈报数(123...报数)
End Sub
围成一圈报数(123...报数)
围成一圈报数(123...报数)%
>
围成一圈报数(123...报数)
<html>
围成一圈报数(123...报数)
<head>
围成一圈报数(123...报数)
<title>围成一圈报数</title>
围成一圈报数(123...报数)
</head>
围成一圈报数(123...报数)
围成一圈报数(123...报数)
<body>
围成一圈报数(123...报数)
<p>&nbsp;</p>
围成一圈报数(123...报数)
<p>&nbsp;</p>
围成一圈报数(123...报数)
<p align="center">
围成一圈报数(123...报数)
<table border=0>
围成一圈报数(123...报数)
<form method="post" action="?action=do">
围成一圈报数(123...报数)    
<tr><td>总人数:</td><td><input type="text" name="num" value=""></td></tr>
围成一圈报数(123...报数)    
<tr><td>报数间隔:</td><td><input type="text" name="spe" value=""></td></tr>
围成一圈报数(123...报数)    
<tr><td colspan="2"><input type="submit" value="查看结果"></td></tr>
围成一圈报数(123...报数)
</form>
围成一圈报数(123...报数)
</table>
围成一圈报数(123...报数)
</p>
围成一圈报数(123...报数)
</body>
围成一圈报数(123...报数)
</html>



围成一圈报数(123...报数)
围成一圈报数(123...报数)
围成一圈报数(123...报数)
围成一圈报数(123...报数)
<%
围成一圈报数(123...报数)
围成一圈报数(123...报数)
'围成一圈报数(123围成一圈报数(123...报数)报数)
围成一圈报数(123...报数)

围成一圈报数(123...报数)
Dim sAction
围成一圈报数(123...报数)sAction 
= Trim(Request.QueryString("action"))
围成一圈报数(123...报数)
If sAction = "do" Then
围成一圈报数(123...报数)    
Dim num, spe '人数,报数间隔
围成一圈报数(123...报数)
    num = Trim(Request.Form("num"))
围成一圈报数(123...报数)    spe 
= Trim(Request.Form("spe"))
围成一圈报数(123...报数)    
围成一圈报数(123...报数)    
'错误处理
围成一圈报数(123...报数)
    If IsNumeric(num) = False Or IsNumeric(spe) = False Then
围成一圈报数(123...报数)        OutputError 
"人数和报数间隔只能是数字"
围成一圈报数(123...报数)    
End If
围成一圈报数(123...报数)    
If num < spe Then
围成一圈报数(123...报数)        OutputError 
"人数不能小于报数间隔"
围成一圈报数(123...报数)    
End If
围成一圈报数(123...报数)    
围成一圈报数(123...报数)    
Dim aNum
围成一圈报数(123...报数)    
Dim i
围成一圈报数(123...报数)    
ReDim aNum(num)
围成一圈报数(123...报数)    
For i = 1 To num
围成一圈报数(123...报数)        aNum(i) 
= 0 '初始化数组元素为0,表示全部未报数过;如果报数过,数组元素值为 报数顺序
围成一圈报数(123...报数)
    Next
围成一圈报数(123...报数)
围成一圈报数(123...报数)
围成一圈报数(123...报数)    
Dim n_Order, n_Count '报数顺序, 计数
围成一圈报数(123...报数)
    n_Order = 0
围成一圈报数(123...报数)    n_Count 
= 0
围成一圈报数(123...报数)    
围成一圈报数(123...报数)    
围成一圈报数(123...报数)    
'输出结果
围成一圈报数(123...报数)
    Response.Write "<b>人数:</b>" & num & "<br/>"
围成一圈报数(123...报数)    Response.Write 
"<b>报数间隔:</b>" & spe & "<br/>"
围成一圈报数(123...报数)    Response.Write 
"<b>结果:</b>"
围成一圈报数(123...报数)
围成一圈报数(123...报数)    
Dim s
围成一圈报数(123...报数)    
Do While True
围成一圈报数(123...报数)        
If IsDone(aNum) = True Then Exit Do '如果已经全部报数,那么退出
围成一圈报数(123...报数)

围成一圈报数(123...报数)        
For i = 1 To num
围成一圈报数(123...报数)            
If aNum(i) = 0 Then
围成一圈报数(123...报数)                n_Count 
= n_Count + 1
围成一圈报数(123...报数)                
If n_Count Mod spe = 0 Then
围成一圈报数(123...报数)                    n_Order 
= n_Order + 1
围成一圈报数(123...报数)                    aNum(i) 
= n_Order
围成一圈报数(123...报数)                    s 
= s & i & ","
围成一圈报数(123...报数)                
End If
围成一圈报数(123...报数)            
End If
围成一圈报数(123...报数)        
Next
围成一圈报数(123...报数)
围成一圈报数(123...报数)    
Loop
围成一圈报数(123...报数)    
围成一圈报数(123...报数)    s 
= Left(s, Len(s)-1)
围成一圈报数(123...报数)    Response.Write s
围成一圈报数(123...报数)
围成一圈报数(123...报数)
End If
围成一圈报数(123...报数)
围成一圈报数(123...报数)
围成一圈报数(123...报数)
Sub OutputError(str)
围成一圈报数(123...报数)    Response.Write 
"<script language='javascript'>alert('" & str & "');history.back();</script>"
围成一圈报数(123...报数)    Response.End
围成一圈报数(123...报数)
End Sub
围成一圈报数(123...报数)
围成一圈报数(123...报数)
Function IsDone(a_Num)
围成一圈报数(123...报数)    
Dim i
围成一圈报数(123...报数)    
For i = 1 To UBound(a_Num)
围成一圈报数(123...报数)        
If a_Num(i) = 0 Then
围成一圈报数(123...报数)            IsDone 
= False
围成一圈报数(123...报数)            
Exit Function
围成一圈报数(123...报数)        
End If
围成一圈报数(123...报数)    
Next
围成一圈报数(123...报数)    IsDone 
= True
围成一圈报数(123...报数)
End Function
围成一圈报数(123...报数)
围成一圈报数(123...报数)
围成一圈报数(123...报数)%
>
围成一圈报数(123...报数)
<html>
围成一圈报数(123...报数)
<head>
围成一圈报数(123...报数)
<title>围成一圈报数</title>
围成一圈报数(123...报数)
</head>
围成一圈报数(123...报数)
围成一圈报数(123...报数)
<body>
围成一圈报数(123...报数)
<p>&nbsp;</p>
围成一圈报数(123...报数)
<p>&nbsp;</p>
围成一圈报数(123...报数)
<p align="center">
围成一圈报数(123...报数)
<table border=0>
围成一圈报数(123...报数)
<form method="post" action="?action=do">
围成一圈报数(123...报数)    
<tr><td>总人数:</td><td><input type="text" name="num" value=""></td></tr>
围成一圈报数(123...报数)    
<tr><td>报数间隔:</td><td><input type="text" name="spe" value=""></td></tr>
围成一圈报数(123...报数)    
<tr><td colspan="2"><input type="submit" value="查看结果"></td></tr>
围成一圈报数(123...报数)
</form>
围成一圈报数(123...报数)
</table>
围成一圈报数(123...报数)
</p>
围成一圈报数(123...报数)
</body>
围成一圈报数(123...报数)
</html>

c语言:
}

相关文章: