qq_31663901
2016-09-24 12:52
采纳率: 66.7%
浏览 2.6k
已采纳

如何构造一个范围内所有的回文数?

列如构造出5-100000所有的回文数。不是要顺序查找的方法!!是自己一个一个的构造来提高效率!

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • blownewbee 2016-09-24 13:07
    已采纳
     for (int i = 1; i < 10; i++)
    {
    int r1 = i;
    if (r1 > 5) printf("%d", r1);
    int r2 = i * 10 + i;
    printf("%d", r2);
    }
    for (int i = 10; i < 100; i++)
    {
    int r = i * 100 + rev(i);
    printf("%d", r);
    }
    for (int i = 100; i < 1000; i++)
    {
    int r = i * 100 + rev(i / 10);
    printf("%d", r);
    }
    
    另外你写一个函数
    int rev(int x) { 返回x颠倒以后的结果,比如123返回321,这个我就不帮你写了。}
    
    点赞 打赏 评论
  • 智者知已应修善业 2016-09-24 13:00

    回文数至少是2位数的?要构成也很简单,如取1位数*10+位数构成2位数的回文数,取1位数*100+位数构成3位数的回文数,是要这样的?

    点赞 打赏 评论
  • blownewbee 2016-09-24 13:05

    思路就是0-9,9个数字分别取1个、2个、3个,然后组成回文数。排除掉5以下的,和0开头的。

    点赞 打赏 评论

相关推荐 更多相似问题