分享一个大牛的人工智能教程。零基础通俗易懂风趣幽默希望你也加入到人工智能的队伍中来请轻击人工智能教程大家好欢迎来到我的网站 人工智能被认为是一种拯救世界、终结世界的技术。毋庸置疑人工智能时代就要来临了科… 继续阅读 前言https://www.captainai.net/troubleshooterpackage live.every.day.ProgrammingDesign.CodingInterviewGuide.Other; /** * 判断一个数是否是回文数 * * 【题目】 * 定义回文数的概念如下: * •如果一个非负数左右完全对应则该数是回文数例如:12122等。 * •如果一个负数的绝对值左右完全对应也是回文数例如:-121-22等。 * 给定一个32位整数num判断num是否是回文数。 * * 【难度】 * 简单 * * 【解答】 * 本题的实现方法当然有很多种本文介绍一种仅用一个整型变量就可以实现的方法步骤如下 * 1.假设判断的数字为非负数n先生成变量help开始时help1。 * 2.用help不停地乘以10直到变得与num的位数一样。例如num等于123321时help就是100000。num如果是131help就是 * 100总之让help与num的位数一样。 * 3.那么num/help的结果就是最高位的数字num%10就是最低位的数字比较这两个数字不相同则直接返回false。相同则令 * num(num%help)/10即num变成除去最高位和最低位两个数字之后的值。令help/100即让help变得继续和新的num位数一样。 * 4.如果num0表示所有的数字都已经对应判断完返回true否则重复步骤3。 * 上述方法就是让num每次剥掉最左和最右两个数然后逐渐完成所有对应的判断。需要注意的是如上方法只适用于非负数的判断如 * 果n为负数则先把n变成其绝对值然后用上面的方法进行判断。同时还需注意32位整数中的最小值为-2147483648它是转不成 * 相应的绝对值的可这个数也很明显不是回文数。所以如果n为-2147483648直接返回false。具体过程请参看如下代码中的 * isPalindromeNumber方法。 * * author Created by LiveEveryDay */ public class IsPalindromeNumber { public static boolean isPalindromeNumber(int n) { if (n Integer.MIN_VALUE) { return false; } n Math.abs(n); int help 1; while (n / help 10) { help * 10; } while (n ! 0) { if (n / help ! n % 10) { return false; } n (n % help) / 10; help / 100; } return true; } public static void main(String[] args) { int n 123454321; System.out.printf(Is palindrome number: %s, isPalindromeNumber(n)); } } // ------ Output ------ /* Is palindrome number: true */