猫吃老鼠问题

来源:互联网 发布:excel求和数据不对 编辑:程序博客网 时间:2024/04/28 03:23

一只猫每天要抓很多老鼠,但这只猫自从参与躲猫猫游戏之后,喜欢上了躲猫猫游戏,每天让抓到的老鼠排队,然后按照1,3,5,7,9,100……等奇数位吃老鼠,然后在剩下的队列里面,再从头吃1,3,5,7……等奇数位上的老鼠,最后总会剩余一只老鼠,猫会放生这只老鼠,那么为了逃生,写一个程序,当输入老鼠的数量时,输出每次被吃掉的老鼠的位置。

我的大体思路:

把位置编号为奇数位的元素值设置为0。(1)

重复(1),但忽略所有值为0的元素,直到只剩下一个老鼠为止。

代码:

#include <stdio.h>#define N 100int main(void){    int mouse[N], n, i, j, k, live;    printf("老鼠数量:");    scanf("%d", &n);    for (i = 0; i < N; i++)    mouse[i] = 1;    for (live = n, i = 1; live > 1;) {        printf("第%d次被吃掉的老鼠:\n", i++);        for (j = k = 0; j < n; j++)            if (mouse[j] && (++k) % 2) {                printf("%d\n", j+1);                mouse[j] = 0;                live--;            }    }    return 0;}
原创粉丝点击