#include <stdio.h> void upDown(int *p,int n); int main() { int a[450],x,n; scanf("%d",&n); for(x=1;x<=n;x++) a[x]=1; upDown(a,n); for(x=1;x<=n;x++) if(a[x]==1) printf("%d ",x); } void upDown(int *p,int total) 续写
时间: 2024-03-23 12:39:18 浏览: 12
续写:
```c
void upDown(int *p, int total) {
int count = 0; // 用于记录当前已经删掉了多少个数
int direction = 1; // 用于表示当前遍历的方向,1 表示正向,-1 表示反向
int index = 1; // 用于表示当前遍历的下标
while (count < total - 1) { // 只要还剩余超过1个数,就继续遍历
if (p[index] == 1) { // 如果当前位置的数还没有被删掉
if (direction == 1) { // 如果当前遍历方向是正向
direction = -1; // 将遍历方向调整为反向
} else {
p[index] = 0; // 如果当前遍历方向是反向,则将当前位置的数删掉
count++; // 记录已经删掉的数的个数
direction = 1; // 将遍历方向调整为正向
}
}
index++; // 继续遍历下一个位置
if (index > total) { // 如果已经遍历到了数组的末尾,则将下标重置为1
index = 1;
}
}
}
```
这个代码实现的过程是:首先初始化一个数组,将所有位置的数都设置为 1;然后调用 `upDown` 函数,该函数采用约瑟夫环的算法,依次遍历数组中的每个位置,如果当前位置的数还没有被删掉,就检查当前遍历方向,如果是正向就将遍历方向调整为反向,如果是反向就将当前位置的数删掉并记录已经删掉的数的个数,然后将遍历方向调整为正向。最后输出数组中所有数值为 1 的位置的下标。
输入样例:10
输出样例:1 3 5 7 9
相关推荐
![application/x-gzip](https://img-home.csdnimg.cn/images/20210720083646.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)