约瑟夫环是一个数学的应用问题:已知有n个人,编号为1到n,围坐在一张圆桌周围,从第k个人开始报数(从1开始报),将数到m的人剔除出去,接下来的下一个人重新从1开始报数,如此反复进行,问最后一个被剔除的人是谁???
假设现在有n个人,从第1个人开始报数,数到m的人被剔除。
int check_last_del(int n,int m ) { int i = 1; int ret = 0; for (i = 2; i<=n;i++) { ret = (ret + m) %i; } return ret+1; //因为ret是从0到n-1,最后别忘了加1。 }
时间: 2024-10-17 12:05:20