【Java&Python双管齐下复健002】回文数和反转数

Python的回文数

def palindrome(str):
    if (len(str) == 1):
        return True
    else:
        i,j = 0, len(str)-1
        while(i<j):
            if(str[i]!=str[j]):
                return False
            i +=1
            j -=1
        return True

n= input()

if (palindrome(n)):
    print("Yes")
else:
    print("No")

Python的反转数

n = eval(input())
l = len(str(n))

while( l > 0 ):
    print(int(n%10),end="")
    n =n/10
    l -= 1

Java的回文数

import java.util.Scanner;

public class Palindrome {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int n = input.nextInt();
        if (Palindrom(n)) {
            System.out.println("Yes");
        } else {
            System.out.println("No");
        }
    }

    public static boolean Palindrom(int i){
        String str = String.valueOf(i);
        int len = str.length();
        int L = 0;
        int R = len -1;
        if(len == 1){
            return true;
        }
        while(L<R){
            if(str.charAt(L)!=str.charAt(R)){
                return false;
            }
            L++;
            R--;
        }
        return true;
    }

}

Java的反转数

import java.util.Scanner;

public class inverse {
    public static void main(String[] args){
        Scanner input = new Scanner(System.in);
        int n = input.nextInt();
        while(n>0){
            System.out.print(n%10);
            n /= 10;
        }
    }
}

思路总结:

  1. 回文数:转字符串,判断首末字符是否相等,自加自减。

  2. 反转数:取余输出,本体除以十取整。在Python中需要用math方法中的floor向下取整,而java直接/10得到的就是整数。

 

今天两个题思路都很简单,但是因为因为数值类型卡了很久的bug。问题不大,多练习,第二天KO。

原文地址:https://www.cnblogs.com/JodyJoy1201/p/13967347.html