一道很简单的老问题,求更好的解决方法

简介:

今天在一个论坛看到有人问一个很老的问题。

10个人围一圈,编号为1的人开始数数,数到能被3整除的编号的人退出,然后再往下数。问最后剩几个人?
如第一圈后:3,6,9退出,还剩7人下一圈从第11开始数。求算法

看到过这个题目很多次,从来都没有仔细想过写过代码。 
下面的方法是我今天看到题目后的第一反应,应该有更好的吧。
你们都是怎么做的啊,学习一下,谢谢啦!
我算法很弱的。。。

一、数组实现 
1.    for循环初始化每个人的值为0
2.    开始报数,如果所报之数能被3整除,设置此人的值为1
3.    如此循环下去,直到只有一个人的值为0
4.    获得此人在数组中的下标,加1之后输出,即为所求

package   Test;
public   class 
 Main {
    
 public   static   void 
 main(String[] args) {
        
 int [] person  =   new   int [ 10 
];
        
 for  ( int  i  =   0 ; i  <  person.length; i ++ 
) {
            person[i] 
 =   0 
;
        }
        
 for  ( int  j  =   0 , count  =   0 , leave  =  person.length; leave  !=   1 ; j  =  (j  +   1 
) %  (person.length)) {
            
 if  (person[j]  ==   1 
) {
                
 continue 
;
            } 
 else 
 {
                count
 ++ 
;
                
 if  (count  %   3   ==   0 
) {
                    person[j] 
 =   1 
;
                    leave
 -- 
;
                }
            }
        }
        
 for  ( int  i  =   0 ; i  <  person.length; i ++ 
) {
            
 if  (person[i]  ==   0 
) {
                System.out.println(
 " The last person is  "   +  (i  +   1 
));
                
 return 
;
            }
        }
    }
}

本文转自BlogJavaOo缘来是你oO的博客,原文链接:一道很简单的老问题,求更好的解决方法,如需转载请自行联系原博主。
相关文章
|
8月前
|
SQL 安全 程序员
PHP编程中的关键性错误及解决方法
在PHP编程过程中,程序员常常会遇到一些关键性错误,这些错误可能会导致程序运行异常甚至崩溃。本文将重点探讨PHP编程中常见的关键性错误,并提供解决方法,帮助程序员更好地应对这些问题,提高编程效率和代码质量。
44 1
|
8月前
在代码优化过程中,常见的错误和bug包括以下几点
在代码优化过程中,常见的错误和bug包括以下几点
|
4月前
|
机器学习/深度学习 数据挖掘 测试技术
自学Python的系统策略与步骤
通过遵循这些步骤和策略,你可以系统地自学Python,并有效地构建和深化你的编程知识和技能。
40 6
|
6月前
|
SQL 缓存 Java
性能优化思路及常用工具及手段问题之watch工具分析的问题如何解决
性能优化思路及常用工具及手段问题之watch工具分析的问题如何解决
|
6月前
|
Java
性能优化思路及常用工具及手段问题之stack工具分析异常数据问题如何解决
性能优化思路及常用工具及手段问题之stack工具分析异常数据问题如何解决
|
6月前
|
存储 Java
浅析JAVA日志中的性能实践与原理解释问题之测试日志内容大小对系统性能的影响问题如何解决
浅析JAVA日志中的性能实践与原理解释问题之测试日志内容大小对系统性能的影响问题如何解决
131 0
|
6月前
|
运维 中间件 数据库
浅析JAVA日志中的性能实践与原理解释问题之元信息打印会导致性能急剧下降问题如何解决
浅析JAVA日志中的性能实践与原理解释问题之元信息打印会导致性能急剧下降问题如何解决
|
8月前
|
敏捷开发 测试技术 持续交付
几个有用的测试网站
几个有用的测试网站
543 0
|
Java 编译器
编程基础|如何解决编程中的代码错误问题
编程基础|如何解决编程中的代码错误问题
279 0
|
监控 搜索推荐
解决问题的最佳实践路径
借助搜索引擎看是否有类似问题和解决方案,分析可行性并尝试(试错),搞不定再求助更专业的人;
解决问题的最佳实践路径

热门文章

最新文章