解题思路:
参考代码:
#include<stdio.h> #include<stdlib.h> int n,m; int *a; void init(); void count_off(); void output(); int main() { while(scanf("%d %d",&n,&m)==2) { init(); count_off(); output(); } return 0; } void init() { int i; a=(int*)malloc(sizeof(int)*(n+1)); for(i=0;i<=n;i++) a[i]=1; } void count_off() { int i,j,k; i=1;j=1;k=0;//i记录出局人数;j是数组循环计数器;k用来判断是否应该出局 while(i<=n-1) { if(a[j]) ++k; if(k==m) { a[j]=0; k=0; i++; } j++; if(j==(n+1)) j=1; } } void output() { int i; for(i=1;i<=n;i++) if(a[i]==1) printf("%d\n",i); free(a); }
0.0分
0 人评分
C语言程序设计教程(第三版)课后习题8.9 (Java代码)浏览:1413 |
printf基础练习2 (C语言代码)浏览:955 |
C语言程序设计教程(第三版)课后习题1.6 (C语言代码)浏览:732 |
C语言程序设计教程(第三版)课后习题7.5 (C语言代码)浏览:900 |
WU-陶陶摘苹果2 (C++代码)浏览:1018 |
循环入门练习6 (C语言代码)浏览:1058 |
模拟计算器 (C语言代码)浏览:2366 |
C语言训练-斐波纳契数列 (C语言代码)浏览:644 |
判定字符位置 (C++代码)浏览:733 |
C语言程序设计教程(第三版)课后习题1.6 (C语言代码)浏览:744 |