惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Latest news
Latest news
T
Troy Hunt's Blog
V
Vulnerabilities – Threatpost
L
LINUX DO - 热门话题
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Simon Willison's Weblog
Simon Willison's Weblog
V
V2EX
博客园 - 司徒正美
B
Blog RSS Feed
AWS News Blog
AWS News Blog
MyScale Blog
MyScale Blog
Scott Helme
Scott Helme
Cisco Talos Blog
Cisco Talos Blog
Last Week in AI
Last Week in AI
NISL@THU
NISL@THU
博客园 - Franky
P
Proofpoint News Feed
博客园_首页
C
CERT Recently Published Vulnerability Notes
雷峰网
雷峰网
S
Schneier on Security
P
Proofpoint News Feed
Hugging Face - Blog
Hugging Face - Blog
G
GRAHAM CLULEY
博客园 - 三生石上(FineUI控件)
月光博客
月光博客
WordPress大学
WordPress大学
The Hacker News
The Hacker News
T
Threatpost
阮一峰的网络日志
阮一峰的网络日志
A
Arctic Wolf
Microsoft Azure Blog
Microsoft Azure Blog
T
The Exploit Database - CXSecurity.com
Engineering at Meta
Engineering at Meta
罗磊的独立博客
T
The Blog of Author Tim Ferriss
D
Darknet – Hacking Tools, Hacker News & Cyber Security
I
Intezer
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
K
Kaspersky official blog
SecWiki News
SecWiki News
云风的 BLOG
云风的 BLOG
美团技术团队
C
Cybersecurity and Infrastructure Security Agency CISA
博客园 - 【当耐特】
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Security Latest
Security Latest
C
Cyber Attacks, Cyber Crime and Cyber Security
B
Blog
S
Security Affairs

博客园 - 王国营的博客

asp.net Handler中的IsReusable属性及在Handler中使用Session 关于Asp.Net中避免用户连续多次点击按钮,重复提交表单的处理 一道面试题 多层循环的递归实现 不通过第三个变量实现两个整型变量的交换 将PHP文件生成静态文件源码 PHP Warning: date(): It is not safe to rely on the system's timezone settings EcShop 如何制作一张windows sp3启动安装盘iso? win7下xp mode IP在同一网段实现网络共享 sql server 2005附加数据库错误 无法打开物理文件 解决114啦源码(114la)不能生成地方房产和地方报刊问题4级页面0字节 菜鸟学PHP之Smarty入门(组图) 弹出一次“设为主页”和“加入收藏”代码 EMS SQL Manager中文显示乱码的解决方法 未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序 CSS和JS链接地址中带的问号是做什么的 IIS7/IIS7.5下轻松配置PHP利器(微软PHP Manager for IIS 7) iframe异步加载技术及性能 新开网址导航网站,欢迎各位朋友捧场
约瑟夫环问题
王国营的博客 · 2013-12-02 · via 博客园 - 王国营的博客

约瑟夫环问题

约瑟夫环是一个数学的应用问题:

已知16个人(以编号0,1,2...15分别表示)围坐在一张圆桌周围。从编号为0的人开始报数(报数从1开始),数到3的倍数的那个人出列;直到圆桌剩下一个,请打印出每个人出列的编号

C#非递归发实现

 static void Main(string[] args)
        {
            //保存移走的人的个数
            int RemoveCount = 0;
            //保存每个人读出的数字
            int ReadCount = 0;
            int[] personNum = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 };

            while (true)
            {
                for (int i = 0; i < personNum.Length; i++)
                {
                    //表示没有移除的数据
                    if (personNum[i] != -1)
                    {
                        //数字加1
                        ReadCount++;
                        if (ReadCount % 3 == 0)
                        {
                            //设置为移除-1
                            Console.WriteLine(personNum[i]+"号移除");
                            personNum[i] = -1;
                            //移除的个数
                            RemoveCount++;
                            if (RemoveCount >= 16)
                            {
                                break;
                            }
                        }
                    }
                }
                if (RemoveCount >= 16)
                {
                    break;
                }
            }
            //最后输出一个数字
            for (int i = 0; i < personNum.Length; i++)
            {
                if (personNum[i] != -1)
                {
                    Console.WriteLine("最后一个人原来的编号是"+personNum[i]);
                    break;

                }
            }
        }

posted @ 2013-12-02 11:30  王国营的博客  阅读(287)  评论()    收藏  举报