TCHS 90 回文数

求解思路是把数字转换成字符串,进行判断,级数

public class Test {
    public static void main(String args [])
    {
        TheLuckyNumbersLevelOne a = new TheLuckyNumbersLevelOne();
        System.out.println(a.find(4567823,7891456));
        
    }
}

class TheLuckyNumbersLevelOne
{
    public long find(long a, long b)
    {
        long count=0;
        for(long x=a;x<=b;x++)
        {
            if(confirm(x))
                count++;
        }
        return count;
    }
    private boolean confirm(long a)
    {
        String s = String.valueOf(a);
        if(s.length()==1)
            if(s.charAt(0)==‘4‘||s.charAt(0)==‘7‘)
                return true;
            else
                return false;
        
        for(int x = 0;x<s.length()/2;x++)
        {
            if((s.charAt(x)==‘4‘||s.charAt(x)==‘7‘)&&s.charAt(x)==s.charAt(s.length()-x-1))
                ;
            else
            {
                return false;
            }
        }
        if(s.charAt(s.length()/2)==‘4‘||s.charAt(s.length()/2)==‘7‘)
        return true;
        else return false;
    }
}

时间: 2024-10-12 20:12:17

TCHS 90 回文数的相关文章

回文数 第N个回文数

判断回文数还是不难,如果能转为字符串就更简单了. 如果是求第N个回文数呢. 12321是一个回文数,这里先考虑一半的情况. 回文数的个数其实是有规律的.如: 1位回文数: 9个 2位回文数: 9个 3位回文数: 90个 4位回文数: 90个 5位回文数: 900个 6位回文数: 900个 … 我们看到9.90.900,是不是很有规律,那是什么原因?很简单,我们把回文数拆开两半 [123321]来看.两半的变化一样的,那我们只算其中一半就行了.首位不能是0,所以左半最小为 100,最大为999,共

回文数(swust oj-371)

回文数 Time Limit:   1000MS       Memory Limit:   65535KB Submissions:   70       Accepted:   12 Description 一个自然数如果把所有数字倒过来以后和原来的一样,那么我们称它为回文数.例如151和753357.我们可以把所有回文数从小到大排成一排:1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 22, 33, ...注意10不是回文数,虽然我们可以把它写成010,但是在本题中前导0是不

回文数问题

问题描述 我在2008年6月写了一篇随笔"可以使用C#语言的在线ACM题库",其中提到 Sphere Onlile Judge (SPOJ) 网站.现在我们来看看该网站 SPOJ Problem Set (classical) 中的"5. The Next Palindrome".这道题目的主要内容如下所示: The Next Palindrome: A positive integer is called a palindrome if its represent

[swustoj 371] 回文数

回文数(0371) 问题描述 一个自然数如果把所有数字倒过来以后和原来的一样,那么我们称它为回文数.例如151和753357.我们可以把所有回文数从小到大排成一排:1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 22, 33, ...注意10不是回文数,虽然我们可以把它写成010,但是在本题中前导0是不允许的. 你的任务是求出第i小的回文数.例如第1,12,24大的回文数分别是1,33,151. 输入 输入只有一行,即i(1<=i<=2*10^9).输出 输出只有一行,即第i小的

[亚马逊amazon] 在线笔试题 大于非负整数N的第一个回文数 Symmetric Number

1.题目 如标题,求大于整数N(N>=0)的第一个回文数的字符串表示形式. 这个题目也是当时笔试第一次见到,花了一个小时才做出了.慢慢总结还是挺简单的. 2.分析 分析如下: (1)一位数N(9除外). 第一个大于N回文数等于N+1,如大于3的第一个回文数是4. (2)奇数位(一位数除外) 需要看“左边反转数字”是否大于"右边数字". 1)如果小于等于,则“左边+中间字母”组成的数字+1,再对称就可以. 2)如果大于,则左边数字直接对称到右边就可以啦. (3)偶数位 需要看“左边

for语句的强化(水仙花,九九乘法表,回文数等)

一.输出如下图形:11 21 2 31 2 3 41 2 3 4 51 2 3 4 5 61 2 3 4 5 6 71 2 3 4 5 6 7 81 2 3 4 5 6 7 8 9 public class five { public static void main(String[] args) {  // TODO Auto-generated method stub    for(int a=1;a<=9;a++){     for(int  b=1;b<=a;b++){      Sy

C# 算法题系列(二) 各位相加、整数反转、回文数、罗马数字转整数

各位相加 给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数. 示例: 输入: 38 输出: 2 解释: 各位相加的过程为:3 + 8 = 11, 1 + 1 = 2. 由于 2 是一位数,所以返回 2. 进阶:你可以不使用循环或者递归,且在 O(1) 时间复杂度内解决这个问题吗? 题目地址 https://leetcode-cn.com/problems/add-digits/ 代码模板 public class Solution { public int AddDigits

判断一个数是否为回文数

#include <stdio.h> int is_palindromic(int num) {  char _old = num;  char _new = 0;  while (num)  {   _new = _new * 10 + (num % 10);   num = num / 10;  }  if (_new == _old)  {   return 1;  }  else  {   return 0;  } } int main() {  int num = 0;  scanf

LeetCode 9 Palindrome Number (回文数)

翻译 确定一个整数是否是回文数.不能使用额外的空间. 一些提示: 负数能不能是回文数呢?(比如,-1) 如果你想将整数转换成字符串,但要注意限制使用额外的空间. 你也可以考虑翻转一个整数. 然而,如果你已经解决了问题"翻转整数(译者注:LeetCode 第七题), 那么你应该知道翻转的整数可能会造成溢出. 你将如何处理这种情况? 这是一个解决该问题更通用的方法. 原文 Determine whether an integer is a palindrome. Do this without ex