约瑟夫问题

来源:互联网 发布:java友盟推送demo 编辑:程序博客网 时间:2024/04/28 18:45
有n个人围成一圈,顺序编号,从第一个人开始报数,凡报到3的人出圈,编写程序,问最后留下的是原来第几号的那位?
</pre><pre name="code" class="cpp">#include"stdio.h"int main(){int a[100][2];int i,n;int index,count;int temp=1;printf("please input a number:\n");scanf("%d",&n);for(i=0;i<n;i++){a[i][0]=i+1;a[i][1]=1;}index=1;count=n;while(count!=1){if(a[index][1]==1){temp++;if(temp==3){temp=1;a[index][1]=0;count--;}}index=(index+1)%n;}for(i=0;i<n;i++)printf("%d\t%d\n",a[i][0],a[i][1]);return 0;}


                                             
0 0
原创粉丝点击