练达。(8)"/>
简洁精美源于分析透彻,构思明确、求精,逻辑练达。(8)
/*列如构造出5-100000所有的回文数。不是要顺序查找的方法!!是自己一个一个的构造来提高效率!回文数由2位以上组成,如:11,22,111,222,1111,2222,总结规律得:基数*10+位数,2位数以上有2种方法,分别生成-1位的奇位数和*2位的偶位数,如2位数*2=4位数,-1=3位数,3位数*2=6位数,-1=5位数,此后类推这里只举例,实行了分析的思路,至于具体细节的调整就不写了,其实,就是把封装改为有返回Func <>封装,用回文数进行判断是否大于变量 止 来终止运行即可*/int 始 = 1, 止 = 1000;List<int> 回文数 = new List<int>();Action<int, int> 合成回文 = (基数, 回数) =>{do/*基数*10+位数算法*/{基数 = 基数 * 10 + 回数 % 10;} while ((回数 /= 10) > 0);回文数.Add(基数);//Console.Write("回{0}:", 基数);};do{if (始 >= 10)/*生成奇位*/合成回文(始, 始 / 10);合成回文(始, 始);/*生成偶位*/} while (++始 < 止);回文数 = 回文数.OrderBy(升序 => 升序).ToList();Console.Write(string .Join (":", 回文数));
更多推荐
简洁精美源于分析透彻,构思明确、求精,逻辑练达。(8)
发布评论