约瑟夫问题(数到3的人出局,判断最后一个人是第几个)

来源:互联网 发布:淘宝上禁止出售兴奋剂 编辑:程序博客网 时间:2024/04/29 11:13
#include <stdio.h>int main(){int a[100];int n;int i;int count;int j=0;int index=0;scanf("%d",&n);for(i=0;i<n;i++)a[i]=i+1;for(i=0,count=1;(n-index)!=1;i=(i+1)%(n-index),count++){if(count%3==0){for(j=i;j<n-index;j++)a[j]=a[j+1];count++;//判断是否是3(被3整除)index++;//index记录淘汰了几个数}}printf("%d\n",a[0]);return 0;}

0 0