}
这样就可以运行了。这只是其中一种比较适合初学者,还有几种,这边分享给你们:
#include<iostream> using namespace std; int main() { int num[50]; int i,j,k,m,n; int *p; cout<<endl<<"请输入总人数:"<<endl; cin>>n; p=num; for(i=0;i<n;i++) { *(p+i)=i+1; //以1至n为序,给每个人编号 } i=0; //i为每次循环时计数变量 k=0; //k为按1 2 3报数时的计数变量 m=0; //m为退出人数 while(m<n-1) //当退出人数比n-1少时(即未退出人数大于1时)执行循环体 { if(*(p+i)!=0) { k++; } if(k==3) //将退出人的编号置为0 { *(p+i)=0; k=0; m++; } i++; if(i==n) { i=0;//报数到尾后i恢复为0 } } while(*p==0) { p++; } cout<<"最后一个是"<<*p<<" 号!"<<endl; return 0; }一种比较叼的:
#include <stdio.h> int M = 3; int main() { int n, s = 0; scanf("%d", &n); for (int i = 2; i <= n; ++i) s = (s+M)%i; printf("%d\n", s+1); return 0; }