鲁智深吃馒头
来源:互联网 发布:老梁故事汇 知乎 编辑:程序博客网 时间:2024/04/28 00:21
据说,鲁智深一天中午匆匆来到开封府大相国寺,想蹭顿饭吃,当时大相国寺有99个和尚,只做了99个馒头。智清长老不愿得罪鲁智深,便把他安排在一个特定位置,之后对所有人说: 从我开始报数(围成一圈),第5个人可以吃到馒头(并退下) ,按此方法,所有和尚都吃到了馒头,唯独鲁智深没有吃上。请问他在那个位置? 能否借鉴筛法求出剩下的最后一个人的位置?
#include <stdio.h>#include <stdlib.h>#define N 100int counter=0;//最重要的是把没有数到5的个数打个记号,作为全局变量。就可以重新循环时候可以从打记号处开始。void luzhishen(int a[],int n){ int i,j; for(i=0; i<=n-1; i++) { if(a[i]!=0) { counter++; } if(counter%5==0) { a[i]=0; } if(counter==495) { for(i=0; i<n-1; i++) { if(a[i]!=0) { printf("a[%d]\n",i+1); return; } } } } luzhishen(a,n);}int main(){ int a[N],n=100,i; for(i=0; i<=n-1; i++) { a[i]=1; } luzhishen(a,100); return 0;}
#include <stdio.h>#include <stdlib.h>int main(){ int a[100]; int i,counter=0,j,count=1; for(i=0; i<100; i++) { a[i]=1; } for(i=0; count<=99; i++) { counter += a[i%100]; if(counter==5) { a[i%100]=0; counter=0; count++; } } for(i=0; i<100; i++) { if(a[i]) printf("%d\n",i+1); } return (0);}
<pre class="cpp" name="code">#include <stdio.h>#include <stdlib.h>#define N 100int main(){ int i=0; int a[N]; for (i=0;i<100;i++) { a[i]=1; } int m =99; int cnt=0; // int u=0; do { int p=0; for (p=0;p<N;p++) { if(a[p]!=0) { cnt ++; if(cnt ==5) { cnt =0; m--; a[p]=0; } } } }while (m!=0); for(i=0;i<N;i++) { if(a[i]!=0) { printf("%d",i); } } return 0;}
</pre><pre class="cpp" name="code">
0 0
- 鲁智深吃馒头
- 鲁智深吃馒头
- (八十一)约瑟夫环/鲁智深吃馒头
- 馒头渣!
- 馒头记
- 馒头作业
- 馒头做法
- 酵母馒头 PK 老面馒头
- 制作馒头的技巧
- 馒头夹臭豆腐
- 馒头的来历
- 馒头离奇的一生
- 最后半块馒头
- 包子馒头,各有所爱
- bzoj2054: 疯狂的馒头
- 好吃的馒头
- 生产消费拿馒头
- BZOJ2054疯狂的馒头
- 电脑“故障”记录
- C/C++的64位整型 不同编译器间的比较(附:各类型数据的范围)
- 微信开发之发送get请求
- PAT乙级——1003 数素数 (C/C++)
- zzulioj--1816
- 鲁智深吃馒头
- 解决Visual C++ 编译器中混合 .c 文件时收到 C1853 预编译头错误的方法(转)
- java解惑--谜题1:奇数性
- php通过thrift 0.9.0操作HBase
- 发牌程序 我的java学习之路
- JDBC 连接MySQL的使用。
- PAT乙级——1004 福尔摩斯的约会 (C/C++)
- DOTween -Init
- 子父类中的构造函数