【CCF-CSP 201712-2】游戏
2018-03-09 21:51
423 查看
问题描述 有n个小朋友围成一圈玩游戏,小朋友从1至n编号,2号小朋友坐在1号小朋友的顺时针方向,3号小朋友坐在2号小朋友的顺时针方向,……,1号小朋友坐在n号小朋友的顺时针方向。 游戏开始,从1号小朋友开始顺时针报数,接下来每个小朋友的报数是上一个小朋友报的数加1。若一个小朋友报的数为k的倍数或其末位数(即数的个位)为k,则该小朋友被淘汰出局,不再参加以后的报数。当游戏中只剩下一个小朋友时,该小朋友获胜。 例如,当n=5, k=2时: 1号小朋友报数1; 2号小朋友报数2淘汰; 3号小朋友报数3; 4号小朋友报数4淘汰; 5号小朋友报数5; 1号小朋友报数6淘汰; 3号小朋友报数7; 5号小朋友报数8淘汰; 3号小朋友获胜。 给定n和k,请问最后获胜的小朋友编号为多少? 输入格式 输入一行,包括两个整数n和k,意义如题目所述。 输出格式 输出一行,包含一个整数,表示获胜的小朋友编号。 样例输入 5 2 样例输出 3 样例输入 7 3 样例输出 4 数据规模和约定 对于所有评测用例,1 ≤ n ≤ 1000,1 ≤ k ≤ 9。
#include <iostream> #include <fstream> using namespace std; #define MAX_LEN 1001 struct child{ int id; bool visied; }; child _arr[MAX_LEN]; int n; int k; void input(); void print_data(); bool be_out(int id); int find_vitory(); void input(){ cin >> n; cin >> k; // init for(int i = 1; i <= n; i++){ _arr[i].id = i; _arr[i].visied = false; } } //void print_data(){ // for(int i = 1; i <= n; i++){ // cout<<_arr[i].id<<" "; // } // cout<<endl; //} bool be_out(int id){ if(id%k==0){ return true; }else if(id%10 ==k){ return true; } return false; } int find_vitory(){ int account_now = 0; int index = 1; int child_left = n; while(child_left!=1){ // cout<<"=================="<<endl; // // cout<<"child_left = "<<child_left<<endl; // cout<<"index = "<<index<<endl; if(!_arr[index].visied){ account_now++; // cout<<"account_now = "<<account_now<<endl; // if(be_out(account_now)){ _arr[index].visied = true; // cout<<_arr[index].id<<" - out"<<endl; child_left--; } } index++; if(index>n){ index -= n; } } int result; for(int i = 1; i <= n; i++){ if(!_arr[i].visied){ result = i; break; } } return result; } int main(){ input(); // print_data(); cout<<find_vitory()<<endl; return 0; }
相关文章推荐
- 【CCF-CSP 201712-2】游戏
- 【CCF-CSP 201712-2】游戏
- 【CCF-CSP 201712-2】游戏
- 【CCF-CSP 201712-2】游戏
- CCF CSP 201712-2 游戏 java
- CCF CSP 201712-2 游戏(Java-100分)
- CCF CSP 201712-2:游戏
- 【CCF-CSP 201712-2】游戏
- 【CCF-CSP 201712-2】游戏
- 【CCF-CSP 201712-2】游戏
- 【CCF-CSP 201712-2】游戏
- 游戏 CCF CSP 201712-2
- 【CCF-CSP 201712-2】游戏
- CCF-201712-02-游戏
- CCF CSP 2016年04月第4题 游戏 (BFS)
- CCF 201712-2 游戏
- 【CCF-CSP-201712-1】最小差值
- CCF CSP 编程题目和解答-----试题名称:消除类游戏-------201512-2
- CCF CSP 201512-2 消除类游戏(Java-100分)
- 【CCF-CSP-201712-1】最小差值