约瑟夫函数:f(m, k, i)为m为总人数,报数为k,第i个出环的人的编号,分析得出:
当,i=1时, f(m,k,i)=(m+k-1)%m;
当,i!=1时,f(m,k,i)=( f(m,k,i)+k )%m。
int JosePhus(int m, int k, int i)
{
if (i==1)
return(m+k+1)%m;
else
return( JosePhus(m-1,k,i) +k)%3;//递归
}
约瑟夫函数:f(m, k, i)为m为总人数,报数为k,第i个出环的人的编号,分析得出:
当,i=1时, f(m,k,i)=(m+k-1)%m;
当,i!=1时,f(m,k,i)=( f(m,k,i)+k )%m。
int JosePhus(int m, int k, int i)
{
if (i==1)
return(m+k+1)%m;
else
return( JosePhus(m-1,k,i) +k)%3;//递归
}