这是一道微软的面试题,我在网上看到的,但是没有答案,这是件很痛苦的事情,折磨人,所以我决心自己来搞定。
实际解题过程中,用递归的方法很容易,但是仅仅局限于400亿这样的数字,如果是1-1231111321这样的数字的话,就复杂多了,我在文档类里面有非常详尽的解题思路,用了3种解题的方法,因为排版麻烦,我就不重复贴在网页上了,要看的朋友下载看吧。
有可能算法不是最完美的,希望朋友们能多指教。
本来用的是flash写文档类,今天改了一下,用flex做了一个界面,方便大家计算使用。 此外这个计算器还有计算1到任意数字(如1230321)中有多少个1。 注:第一种算法有最大限制。
提供的下载为flex工程。
countNumberOneFlex.rar