击鼓传花 题解:
#include<iostream>
using namespace std;
int lastremaining(int n, int m){
//编号1~n 成一圈,每次删除第m个,返回最后剩的那个编号(1~n)
if(n == 1) return 1;
else return ((lastremaining(n - 1, m)) + m - 1) % n + 1;
}
int main(){
int n;
cin >> n;
cout << lastremaining(n, 3) << endl;
return 0;
}
登录后发布评论
暂无评论,来抢沙发