欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

SDNU 1263.C语言程序设计教程(第三版)课后习题10.5(约瑟夫环)

发布时间:2024/4/15 编程问答 32 豆豆
生活随笔 收集整理的这篇文章主要介绍了 SDNU 1263.C语言程序设计教程(第三版)课后习题10.5(约瑟夫环) 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

Description

有n人围成一圈,顺序排号。从第1个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来的第几号的那位。

Input

初始人数n

Output

最后一人的初始编号

Sample Input

3

Sample Output

2

Source

Unknown /// /// _ooOoo_ /// o8888888o /// 88" . "88 /// (| -_- |) /// O\ = /O /// ____/`---'\____ /// .' \\| |// `. /// / \\||| : |||// \ /// / _||||| -:- |||||- \ /// | | \\\ - /// | | /// | \_| ''\---/'' | | /// \ .-\__ `-` ___/-. / /// ___`. .' /--.--\ `. . __ /// ."" '< `.___\_<|>_/___.' >'"". /// | | : `- \`.;`\ _ /`;.`/ - ` : | | /// \ \ `-. \_ __\ /__ _/ .-` / / /// ======`-.____`-.___\_____/___.-`____.-'====== /// `=---=' /// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /// Buddha Bless, No Bug ! /// #include <iostream> #include <cstdio> #include <algorithm> #include <cstring> #include <cmath> #include <cstdlib> #include <queue> #include <stack> #include <vector> using namespace std; #define MAXN 100010 #define ll long longint n, num = 0, sum = 0, id; bool sign[1000000+8];int main() {num = 0, sum = 0;scanf("%d", &n);for(int i = 0; i < n; i++)sign[i] = 1;id = 0;while(sum < (n - 1)){if(sign[id])num++;if(num == 3){sign[id] = 0;num = 0;sum++;}id++;if(id == n)id = 0;}for(int i = id; i < n; i++)if(!sign[id])id++;elsebreak;printf("%d\n", id + 1);return 0; }

 

转载于:https://www.cnblogs.com/RootVount/p/11351554.html

总结

以上是生活随笔为你收集整理的SDNU 1263.C语言程序设计教程(第三版)课后习题10.5(约瑟夫环)的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。