首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

用数组实现约瑟夫的有关问题,求指教

2012-03-21 
用数组实现约瑟夫的问题,求指教!用数组实现约瑟夫的问题,求指教!不要用链表做[解决办法]C/C++ code#includ

用数组实现约瑟夫的问题,求指教!
用数组实现约瑟夫的问题,求指教!不要用链表做

[解决办法]

C/C++ code
#include <stdio.h>#define PERSON 10  //总共多少人#define COUNT 8   //第几个人出列static void init(int num[], int len) //数组下标加1,num数组从1开始{    int i;    for(i = 0; i < len; i++)        num[i] = i + 1;}void Josephus(void){    int num[PERSON], remain = PERSON, step = 1, i = 0;    init(num, PERSON);    while(remain > 0){                              if(step != COUNT && num[i] != -1){            step++;        }        else if(step == COUNT && num[i] != -1){            printf("%d killed!\n", num[i]);            num[i] = -1;             // 出列的置位为-1            step = 1;            remain--;        }        i++;        i %= PERSON;    }}int main(void){    Josephus();    return 0;} 

热点排行