简单的约瑟夫问题
2009-04-24 23:35
183 查看
n个人,报到3的退出,主要是注意几个条件!
#include"stdio.h"
void ThreeOut(int *p,int n){
int i=0,j=0,temp=0;
while(temp < n-1) //这里是n-1不是n
{
if(*(p+i) != 0)j++;
if(j == 3){
*(p+i) = 0;
j = 0;
temp++; //退出的人数
}
i++;
if( i == n )i = 0; //这里是n,不是n-1
}
for(i=0;i<n;i++){
printf("%d ",*(p+i)); //输入的1表示最后剩下的那个人
}
}
void main(){
int i,n,flag =1,a[100];
scanf("%d",&n);
for(i = 0;i< n;i++){
a[i] = flag;
}
ThreeOut(a,n); //报到3的出局
}
#include"stdio.h"
void ThreeOut(int *p,int n){
int i=0,j=0,temp=0;
while(temp < n-1) //这里是n-1不是n
{
if(*(p+i) != 0)j++;
if(j == 3){
*(p+i) = 0;
j = 0;
temp++; //退出的人数
}
i++;
if( i == n )i = 0; //这里是n,不是n-1
}
for(i=0;i<n;i++){
printf("%d ",*(p+i)); //输入的1表示最后剩下的那个人
}
}
void main(){
int i,n,flag =1,a[100];
scanf("%d",&n);
for(i = 0;i< n;i++){
a[i] = flag;
}
ThreeOut(a,n); //报到3的出局
}
相关文章推荐
- 约瑟夫问题之简单实现
- 古老而简单的约瑟夫问题
- 面试题之约瑟夫问题-----循环链表简单详述
- 约瑟夫问题的简单实现过程
- 约瑟夫问题简单实现-循环链表
- 约瑟夫问题简单求解
- 简单的for循环理解约瑟夫循环问题。
- 数据结构学习中的简单问题(二):用循环链表求解简单约瑟夫问题
- 约瑟夫问题的java简单算法
- ACM学习历程16——List链表的应用之简单约瑟夫问题
- 简单DP之最少硬币问题(多重背包问…
- c基础,看似简单实则值得思考的问题
- poj 1012 Joseph 约瑟夫问题 (★★☆☆☆)
- 算法_php猴子选大王_约瑟夫问题
- (java)简单回朔法解决迷宫问题
- 第7周项目2-简单计算问题体验
- 我是个vb初学者想请教高手点简单的vb问题如果可以请加我的QQ:382245409谢谢
- 用循环链表解决约瑟夫(josephu)问题
- 约瑟夫问题
- 一步一步求解约瑟夫(Joseph)问题