废话不多说,直接上代码
//找编号
public static void find(int n,int m){
int[] array = new int[n];
int i = 0;
int count = 0;
int flag = 0;
int temp = 0;
temp = count = n;
for(i = 0;i < n;i++){
array[i] = 1;//所有人都在圈内,为1
}
for(i = 1;;i++){
if(i == n + 1){
i = 1;
}
if(array[i-1] != 0){
flag++;
}else {
continue;
}
if(flag % m == 0){
array[i-1] = 0;//已经出圈
count--;
}
if(count == 1){
break;
}
}
for(i = 0;i < temp;i++){
if(array[i] != 0){
System.out.println(i+1);
}
}
}
方法不重要,主要是思想。如有错误,请大家指点。
本文分享了一个通过编程实现的算法,用于在一个整数数组中,根据特定规则找到最后剩下的编号。该算法采用循环和条件判断,逐步淘汰数组中的元素,直至只剩下一个编号。
2851

被折叠的 条评论
为什么被折叠?



