>>分享数据结构和算法相关的知识和技术 书籍支持  卫琴直播  品书摘要  在线测试  资源下载  联系我们
发表一个新主题 开启一个新投票 回复文章 您是本文章第 19638 个阅读者 刷新本主题
 * 贴子主题:  用Java实现回文数算法 回复文章 点赞(0)  收藏  
作者:javathinker    发表时间:2020-03-15 12:08:00     消息  查看  搜索  好友  复制  引用

   1、回文数: 一种数字,如:12321, 这个数字正读是12321,倒读也是12321, 即:将这个数的数字按相反的顺序重新排列后,所得到的数和原来的数一样。

        回文数判别算法(java实现)
import java.io.BufferedReader;

import java.io.InputStreamReader;

public class HuiWenShu {

   public static void main(String[] args) throws Exception{

        BufferedReader br=new BufferedReader(new InputStreamReader(System.in));

        System.out.print("Please input texts:");

        String inputString=br.readLine();

        int input = Integer.parseInt(inputString);

        checkHWS(input);
  }                                                                                                                                                                                        }

    //判断一个数是否为回文数

    public static void checkHWS(int input){

        int reverse = 0,temp = input;    

        while(temp>0){

            reverse = reverse*10+temp%10;

            temp = temp/10;

        }

        if(input==reverse)System.out.println(input+"是回文数!");

        else System.out.println(input+"不是回文数!");
   }
}
                                                                                                                                                                                            

2、 平方回数 :一个回文数,它同时还是某一个数的平方,这样的数字叫做平方回数 。例如:121。

     算法要求:求出规定范围内的所有平方回数(java实现)

import java.io.BufferedReader;
import java.io.InputStreamReader;

public class HuiWenShu {

    public static void main(String[] args) throws Exception{

        BufferedReader br=new BufferedReader(new InputStreamReader(System.in));

        System.out.print("Please input start:");

        String startString=br.readLine();

        int start = Integer.parseInt(startString);

        System.out.print("Please input end:");

        String endString=br.readLine();

        int end = Integer.parseInt(endString);

        getAllHWS(start,end);

    }

    //判断一个数是否为回文数

    public static boolean checkHWS(int input){

        int reverse = 0,temp = input;    

        while(temp>0){

            reverse = reverse*10+temp%10;

            temp = temp/10;

        }

        if(input==reverse)return true;

        else return false;

    }

   //输出给定范围内的,所有平方回数

  public static void getAllHWS(int start,int end){

        double extractionOfStart =  Math.sqrt(start);

        int startTemp = (int) Math.ceil(extractionOfStart);

        double extractionOfEnd =  Math.sqrt(end);

        int endTemp = (int) Math.floor(extractionOfEnd);

        for(int i = startTemp;i<=endTemp;i++){

            int temp = i*i;

            boolean flag = checkHWS(temp);

            if(flag)System.out.println(temp);    

        }

    }

}

----------------------------
原文链接:https://blog.51cto.com/6924918/1259514

程序猿的技术大观园:www.javathinker.net



[这个贴子最后由 flybird 在 2020-03-20 11:56:15 重新编辑]
网站系统异常


系统异常信息
Request URL: http://www.javathinker.net/WEB-INF/lybbs/jsp/topic.jsp?postID=2828

java.lang.NullPointerException

如果你不知道错误发生的原因,请把上面完整的信息提交给本站管理人员