问题描述:
0,1,2,3……,n-1这n个数字排成一个圆圈,从数字0开始每次从这个圆圈里删除第m个数字。求最后这个圆圈里剩下的最后一个数字。
实现代码如下:
#include <stdio.h>
int find(int n,int m){
if(n<=0 || m <=0)return -1;
int i,last=0;
for(i=2;i<=n;i++){
last=(last+m)%i;
}
return last;
}
int main(int argc, char *argv[])
{
int n,m;
scanf("%d %d",&n,&m);
int rs = find(n,m);
printf("%d\n",rs);
return 0;
}
参考资料:
剑指offer
备注:
转载请注明出处:http://blog.youkuaiyun.com/wsyw126/article/details/51386511
作者:WSYW126