#include <iostream> using namespace std; //指定一个位置开始,然后每隔k个位置剔除一个元素,输出最后剩余的元素。 //相当于所有数据绕成一圈,按k个位置长度剔除数据,当只剩一个时,游戏结束,得到结果. int Grial(int a[],int end,int start,int k) { int n = end; int i = start; while(n>1) { int m = (i+=k)%n; for(;m<n-1;m++) { a[m]=a[m+1]; } n--; } return a[n]; } int main() { int a[]={1,2,3,4,5,6,7,8,9}; cout<<Grial(a,9,2,3)<<endl; return 0; }
时间: 2024-09-30 07:48:49