zoukankan      html  css  js  c++  java
  • 一本通1155 回文三位数

    【题目描述】

    如果一个数从左边读和从右边读都是同一个数,就称为回文数。例如6886就是一个回文数,求出所有的既是回文数又是素数的三位数。

    【输入】

         (无)

    【输出】

    所有的既是回文数又是素数的三位数。一个数一行。

    【输入样例】

    (无)

    【输出样例】

    (无)

    1.之前回文数和素数的题都做过,
    现在居然结合起来搞了个回文素数...
    行吧,

    现在让我们见识一下这道题吧。
    2.按规矩分析一下吧,
    这个题的特点比较明显了啊,
    题目中就能看出来两个特点,
    回文数和三位数。
    题干中的素数特点也比较明显。
    所以这个题有三个关键点,
    我们就围绕这三个点来展开程序设计。
    3.三位数这个特点嘛...没什么好说的
    只有和回文数搭配起来才能爆发出强大的威力,
    仔细观察121,232等回文三位数,
    就能发现百位数和个位数是一样的,
    十位数不用管。
    根据前面的经验,
    判断素数的最快方法,
    就是从二到这个数的平方根向下取整都试一遍,
    没有能除尽的,
    这个数就是质数了。
    把100到999之间的数都判断一遍,
    然后输出,
    然后这题就算做完了...
    4.让我们对着题解看一看吧。
    #include<iostream>
    #include<cmath>
    using namespace std;
    bool zhishu(int x);//定义一个叫质数的bool型函数
    int main()
    {
        int i;
        for(i=100;i<=999;i++)//枚举三位数
            if(zhishu(i)&&(i/100==i%10))//判断质数和回文
            cout<<i<<endl;
        return 0;
    }
    bool zhishu(int x)//描述这个叫质数的bool函数
    {
        int i=2;
        while(i<=floor(sqrt(x))&&(x%i!=0))//判断质数的条件
        i++;
        if(i>floor(sqrt(x)))
        return true;
        return false;
    }
    

    5.今天总结时间又到了哈,

       这个题三个点,

       判断素数的方法做了好多遍了,

       回文数就比较难判断了,

       一开始觉得不怎么好做,

       想搞一个相反的字符串然后和原字符串比较,

       觉得实在太难搞了,肯定不是这样,

       然后列了几个回文三位数,发现我是个傻子...

       回文三位数的规律只要一写出数来,

       简直显而易见。

       当做到一个不可能特别难的题,

       但你想的方法真的特别难搞得时候,

       一定会有简单的,属于这个题的方法。

       

       

  • 相关阅读:
    bat windows批处理 移动所有子目录文件
    Oracle常见的QA
    [转载]行动起来
    [转载]微笑
    Excel数据更新至Mysql数据库
    sql server QA
    关于SharpZipLib的压缩与解压问题
    整合Spring.net到asp.net网站开发中初探
    设计模式概要
    Oracle 常用语句档案(二)
  • 原文地址:https://www.cnblogs.com/Jiangxingchen/p/12260764.html
Copyright © 2011-2022 走看看