围圈报数踢三游戏
2015-12-13 15:41
176 查看
n个人围成一个圈,从1到3报数,报到三的退出,求最后留下的人。
# include<stdio.h> int main() { int i,k,m,n,num[20],*p; scanf("%d",&n); p=num; //给每个位置的人一个编号 for(i=0; i<n; i++) *(p+i)=i+1; i=0; m=0; k=0; //当退出的人数小于总人数的时候 while(m<n-1) { //如果某个位置退出了编号置零 //这里没有被退出就继续数数 if(*(p+i)!=0) k++; //数到为3的时候 if(k==3) { //玩家退出 *(p+i)=0; //重新计数 k=0; //记录又多了一个人退出了 m++; } //循环i++,准备观察下一个人 i++; //如果一圈循环完了,从第一个开始 if(i==n) i=0; } //遍历数组寻找最后哪个值不等于0就是最后剩下的玩家 while(*p==0) p++; printf("%d",*p); return 0; }
相关文章推荐
- File类讲解
- 编译器或者链接器会优化掉虚表吗
- IP地址
- Java回炉之多线程(二)生产者与消费者
- windows 自带的 端口映射 端口转向功能
- AJAX
- 链表概述
- [Coursera]算法基础_Week2_枚举_Q1
- iOS UI 01 课堂笔记 -设计模式
- 三大框架整合原理及详解<一>
- java实现梯度下降算法
- linker command failed with exit code 1 (use -v to see invocation)
- EBS TABLE LIST
- POJ 2405 Beavergnaw (计算几何-简单的问题)
- Bootstrap--组件
- iOS UI 01 课堂笔记 -设计模式
- BF算法(java版本)
- Linux下头文件搜索路径
- BootStrap--全局CSS样式
- 磁盘、分区、卷详解cmd命令