|
发表于 2021-12-22 22:18:10
|
显示全部楼层
本帖最后由 jackz007 于 2021-12-22 22:25 编辑
就是约瑟夫环问题
- #include <stdio.h>
- int main(void)
- {
- int d[100] , e , i , n , m ;
- scanf("%d" , & n) ;
- for(e = i = 0 ; i < n ; i ++) d[i] = i + 1 ;
- for(m = n , i = 0 ; m > 1 ; i ++) {
- if(d[i % n]) {
- e ++ ;
- if(! (e % 3)) {
- if(m < n) printf(" , ") ;
- printf("%d" , (i % n) + 1) ;
- d[i % n] = 0 ;
- m -- ;
- }
- }
- }
- printf("\n") ;
- for(i = 0 ; i < n ; i ++) if(d[i]) break ;
- printf("The monkey king is %d\n" , d[i]) ;
- }
复制代码
编译、运行实况:
- D:\00.Excise\C>g++ -o x x.c
- D:\00.Excise\C>x
- 41
- 3 , 6 , 9 , 12 , 15 , 18 , 21 , 24 , 27 , 30 , 33 , 36 , 39 , 1 , 5 , 10 , 14 , 19 , 23 , 28 , 32 , 37 , 41 , 7 , 13 , 20 , 26 , 34 , 40 , 8 , 17 , 29 , 38 , 11 , 25 , 2 , 22 , 4 , 35 , 16
- The monkey king is 31
复制代码 |
|