回文数

回文数

时光总嘲笑我的痴心妄想 提交于 2020-02-29 04:16:08
回文数 题目:https://leetcode-cn.com/problems/palindrome-number/description/ package com.test; public class Lesson003 { public static void main(String[] args) { int i = 121; boolean isHuiwen = judgeHuiwen(i); System.out.println(isHuiwen); } private static boolean judgeHuiwen(int x) { // 负数不回文 if (x < 0) { return false; } // 10以内回文,0也是回文 if (x < 10) { return true; } // 末尾是0不回文 if ((x ^ 0) == 0) { return false; } // 最多10位数 int[] arr = new int[10]; int index = 0; while (true) { int i1 = x % 10; arr[index] = i1; index++; x = x / 10; if (x < 10) { break; } } arr[index] = x; for (int j = 0; j <= index; j+

回文数!

你。 提交于 2020-02-29 04:14:55
1 #include <iostream> 2 #include <cstdio> 3 #include<cstdlib> 4 using namespace std; 5 6 int main() 7 { 8 freopen("ACM.txt","r",stdin); 9 int t; 10 cin>>t; 11 while(t--) 12 { 13 int a=1,n,ans=0; 14 cin>>n; 15 for(int i=0;i<n;i++) a*=10; 16 for(int i=1;i<=a;i++) 17 { 18 int m=i,c=i,b=-1,sum=0,p=1,s=i/10; 19 while(m) 20 { 21 sum=sum*10+m%10; 22 m/=10; 23 } 24 if(sum==i) 25 ans++; 26 } 27 cout<<ans<<endl; 28 } 29 return 0; 30 } View Code 来源: https://www.cnblogs.com/M-D-LUFFI/p/4019822.html

用PHP求回文数

こ雲淡風輕ζ 提交于 2020-02-29 04:01:55
回文数就是顺着数和倒着数的数字都一样 例如:1234321 顺着数是1234321倒着数也是1234321 <?php $sum = $_POST['sum'];//修改为自己想要设定的数字 $half = floor(strlen($sum)/2); $flag = true; for($i = 0;$i < $half;$i++) { $x = substr($sum,$i,1); $y = substr($sum,strlen($sum) - $i - 1,1); if($x != $y) { $flag = false; break; } } if($flag) { echo $sum,'是回文数'; }else{ echo $sum,'不是回文数'; } ?> 来源: https://www.cnblogs.com/lxy1023-/p/6752271.html

52 回文平方数

蹲街弑〆低调 提交于 2020-02-28 22:09:54
52 回文平方数 作者: xxx时间限制: 1S章节: 一维数组 问题描述 : 回文数是指从左向右念和从右向左念都一样的数。如12321就是一个典型的回文数。 给定一个进制B(2=<B<=20进制),输出所有的大于等于1小于等于300且该数的平方用B进制表示时是回文数的数(该数本身不要求是回文数)。 输入说明 : 共一行,一个单独的整数B(B用十进制表示,比如18)。 输出说明 : 每行两个数字,第二个数是第一个数的平方,且第二个数是回文数。 注意:输出时,这两个数都应该以B进制表示。 在输出时,数字10到20分别以A到K代替。 输入范例 : 20 输出范例 : 1 1 2 4 3 9 4 G 11 121 22 484 25 515 33 9I9 DD 9669 # include <stdio.h> int N , B , len ; int a [ 20 ] ; void turn ( int num ) { int i = 0 , t ; len = 0 ; if ( B >= 2 && B < 10 ) { while ( num > 0 ) { a [ i ] = num % B + '0' ; i ++ ; len ++ ; num / = B ; } } else if ( B >= 10 && B <= 20 ) { while ( num > 0 ) { t =

蓝桥杯 java 基础练习 回文数

浪尽此生 提交于 2020-02-26 14:51:47
基础练习 回文数 资源限制 时间限制:1.0s 内存限制:512.0MB 问题描述 1221是一个非常特殊的数,它从左边读和从右边读是一样的,编程求所有这样的四位十进制数。 输出格式 按从小到大的顺序输出满足条件的四位十进制数。 public class Main { public static void main(String[] args) { for (int i = 1000; i <= 9999; i++) { int a=i/1000; int b=i%1000/100; int c=i%1000%100/10; int d=i%1000%100%10%10; if(a==d && b==c){ System.out.println(i); } } } } 来源: CSDN 作者: 看书程序员 链接: https://blog.csdn.net/weixin_44570019/article/details/104515472

【leetcode算法-判断回文数】

久未见 提交于 2020-02-25 17:29:18
1、题目要求 * 判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。 * 示例 1: * * 输入: 121 * 输出: true * 示例 2: * * 输入: -121 * 输出: false * 解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。 2、思路 既然比较,就从中间分开,挨个比较,使用了上次使用的二分法。 static boolean isPalindrome(int x) { String s = String.valueOf(x); char[] chars = s.toCharArray(); int left = 0,right = chars.length-1; int mid = (left + right) / 2; // 注意 int yushu = (left + right) % 2; if (yushu > 0){ left = mid ; right = mid + 1; }else { left = right = mid; } while (left <= right && left >-1){ char aChar = chars[left]; char bChar = chars[right]; if (aChar == bChar ){ left--;

5 Longest Palindromic Substring

北战南征 提交于 2020-02-22 17:17:02
题目 Given a string s, find the longest palindromic substring in s. You may assume that the maximum length of s is 1000. 给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。 Example 1: 1234567 Input: "babad"Output: "bab"Note: "aba" is also a valid answer.Example 2:Input: "cbbd"Output: "bb" 解题思路 从左向右依次遍历字符串. 以当前字符(假设回文数为基数长度)或当前字符和下一个字符(假设回文数为偶数长度)为回文数中心, 向左右两侧搜索. 时间复杂度 O ( n 2 ) O(n^2) O ( n 2 ) 代码 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 const longestPalindrome = function(s) { const len = s.length; if (len <= 1) { return s; } let maxPalStrLeft = 0,

求一定范围内的某数思路(回文举例)

纵然是瞬间 提交于 2020-02-20 18:08:07
#当我们遇到需要找出一定范围内具有某个性质的数,我们不要在这个范围内一个一个的试,类似于“枚举”,但是这样会很麻烦,也会很伤脑筋,我们可以换一种思路,我直接写一种算法,直接求出来这一组数,然后规定范围就可以了,以后有很多这种题目,都可用这种思路,下面看一道例子。 ##今天牛牛学到了回文串,他想在数字里面找回文,即回文数,回文数是正着读与倒着读都一样的数,比如1221,343是回文数,433不是回文数。请输出不超过n的回文数。 ###首先,熟悉几个式子,1/10 = 0,1 % 10 =1. 1267/10 = 126,1267 % 10 = 7. /去掉个位 % 取余,求出个位 #### 1. 我们先令一个数a等于我们每次要试验的 i ,易知,a%10是求a的个位,再不停地另a/ = 10,可以依次求出十位百位, 2. 因为回文数左右对称,所以这个个位与首位应该相等,只要让这个数乘10的n次方就可以到首位,十位乘10的n-1次方就可以到次首位,再将它们累加起来… 3. 其中n表示数位,因为在求a的个位,十位,等等时,可以求出它的数位, 4. 所以可以当上述累加得到的数,恰好符合我们的预想,命名为b, 当b = i时,输出这个我们想要的回文数。 # include int main ( ) { int i , b , n , a ; scanf ( "%d" , & n ) ;

leetcode菜狗入门 | 9. 回文数

拥有回忆 提交于 2020-02-19 04:36:15
回文数的判断 题目描述 判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。 示例 1: 输入 : 121 输出 : true 示例 2: 输入 : - 121 输出 : false 解释 : 从左向右读 , 为 - 121 。 从右向左读 , 为 121 - 。因此它不是一个回文数。 示例 3: 输入 : 10 输出 : false 解释 : 从右向左读 , 为 01 。因此它不是一个回文数。 进阶: 你能不将整数转为字符串来解决这个问题吗? 解题思路 和整数反转思路一样,只需要判断反转之后和输入的数是不是一样就行,当然,如果是负数直接返回false。而且因为是回文数,可以不考虑溢出。 整数反转题目分析 代码 class Solution { public : bool isPalindrome ( int x ) { long res = 0 ; int y = x ; if ( x < 0 ) { return false ; } while ( x != 0 ) { res = res * 10 + x % 10 ; x = x / 10 ; } return res == y ; } } ; 来源: CSDN 作者: Pricircle 链接: https://blog.csdn.net/weixin_42349706/article

回文数

ぃ、小莉子 提交于 2020-02-17 10:58:00
题目 判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。 示例 1: 输入: 121 输出: true 示例 2: 输入: -121 输出: false 解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。 示例 3: 输入: 10 输出: false 解释: 从右向左读, 为 01 。因此它不是一个回文数。 来源:力扣(LeetCode) 解决 class Solution { public: bool isPalindrome(int x) { if(x<0||(x!=0&&x%10==0)) { return false; } int reverseNum=0; while(x>reverseNum) { int temp= x%10; reverseNum =reverseNum*10+temp; x= x/10; } return reverseNum==x||x==reverseNum/10; } }; 来源: https://www.cnblogs.com/aoximin/p/12320487.html