解题思路:数组模拟,初始化为0,循环数组,当j为3时,将该数组值置为-1,代表退出圈子,当k=1时,退出while循环,此时数组值为0的即为最终存活的人
注意事项:注意数组从零开始,最后输出需要加1
参考代码:
#include <memory.h> int main() { int n,d; scanf("%d",&n); d=3; int a[n]; memset(a,0,sizeof(a)); int j,k; j=0; k=n; while(k>1) { for(int i=0;i<n;i++) { if(a[i]==0) { j++; if(j==d) { a[i]=-1; k--; j=0; } } }//end of for }//end of while while(--n>=0) if(a[n]==0) printf("%d\n",n+1);//数组从0开始,0是第一个人 }
0.0分
0 人评分
C语言程序设计教程(第三版)课后习题6.7 (C语言代码)浏览:807 |
C语言程序设计教程(第三版)课后习题9.6 (C语言代码)浏览:596 |
C语言程序设计教程(第三版)课后习题3.7 (C++代码)浏览:1024 |
求组合数 (C语言代码)浏览:1207 |
WU-蓝桥杯算法提高VIP-交换Easy (C++代码)浏览:1186 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:512 |
三角形 (C++代码)递推浏览:825 |
字符逆序 (C语言代码)浏览:506 |
C语言程序设计教程(第三版)课后习题5.5 (C语言代码)浏览:582 |
C语言训练-大、小写问题 (C语言代码)浏览:719 |