P122.32
来源:互联网 发布:长春java培训哪家好 编辑:程序博客网 时间:2024/05/16 14:36
#include<stdio.h>
#define N 100
void order(int man[],int n,int m);
int find(int a[],int n,int key);
main(){
int i,k,m,n,flag=1,man[N]={0};
while(flag=1){
printf("\n输入总人数n和报数间隔m:");
scanf("%d%d",&n,&m);
order(man,n,m);
printf("人的顺序为:\n");
for(i=0;i<n;i++)
printf("%4d%c",i+1,((i+1)%15)==0?'\n':' ');
printf("\n每个人相应的第几个出队:\n");
for(i=0;i<n;i++)
printf("%4d%c",man[i],((i+1)%15)==0?'\n':' ');
printf("\n输入你想知道最后出队的人数:");
scanf("%d",&k);
for(i=0;i<k;i++)
printf("\n倒数第%d个出队的人为%d号\n",1+i,1+find(man,n,(n-i)));
printf("\n是否重新来过(是请按1,否请按0):");
scanf("%d",&flag);
}
}
void order(int man[],int n,int m){
int i,k,pos; //i为报数用计数器,k表示出队顺序,pos表示约瑟夫环
for(i=0;i<n+1;i++)
man[i]=0;
i=k=0;
for(pos=0;k<n;pos=(pos+1)%n){ //循环变量pos对一个圆环循环遍历
if(man[pos]==0)
i++;
if(i==m){
i=0;
k++; //出队数加1
man[pos]=k; //man[pos]是第k个出队的人
}
}
}
int find(int a[],int n,int key){
int i;
for(i=0;i<n;i++)
if(key==a[i])
return i;
#define N 100
void order(int man[],int n,int m);
int find(int a[],int n,int key);
main(){
int i,k,m,n,flag=1,man[N]={0};
while(flag=1){
printf("\n输入总人数n和报数间隔m:");
scanf("%d%d",&n,&m);
order(man,n,m);
printf("人的顺序为:\n");
for(i=0;i<n;i++)
printf("%4d%c",i+1,((i+1)%15)==0?'\n':' ');
printf("\n每个人相应的第几个出队:\n");
for(i=0;i<n;i++)
printf("%4d%c",man[i],((i+1)%15)==0?'\n':' ');
printf("\n输入你想知道最后出队的人数:");
scanf("%d",&k);
for(i=0;i<k;i++)
printf("\n倒数第%d个出队的人为%d号\n",1+i,1+find(man,n,(n-i)));
printf("\n是否重新来过(是请按1,否请按0):");
scanf("%d",&flag);
}
}
void order(int man[],int n,int m){
int i,k,pos; //i为报数用计数器,k表示出队顺序,pos表示约瑟夫环
for(i=0;i<n+1;i++)
man[i]=0;
i=k=0;
for(pos=0;k<n;pos=(pos+1)%n){ //循环变量pos对一个圆环循环遍历
if(man[pos]==0)
i++;
if(i==m){
i=0;
k++; //出队数加1
man[pos]=k; //man[pos]是第k个出队的人
}
}
}
int find(int a[],int n,int key){
int i;
for(i=0;i<n;i++)
if(key==a[i])
return i;
}
0 0
- P122.32
- P122第32题
- p122.10
- P122 6
- P122 10
- P122 14
- P122 15
- P122 15
- P122 16
- P122 17
- P122 21
- P122 28
- P122 20
- p122 6
- p122 10
- p122.15.
- p122 14
- p122 15
- Array和ArrayList的区别
- TexLive+moderncv,打造你自己的简历
- 复杂链表的复制
- hdu1233---还是畅通工程 最小生成树(水)
- POJ 3264 Balanced Lineup(RMQ模板)
- P122.32
- MyBatis Generator常用配置说明
- 我该不该有信仰
- 使用compass自动拼css sprite
- 黑马程序员---Objective-C Block
- 数据结构和算法经典100题-17题
- Java-----7、集合
- 分页系统中的设计问题
- Spring+JMS+ActiveMQ+Tomcat6.0 实现消息服务