算法题:检查数字是否为回文

2021年4月16日19:52:17 发表评论 998 次浏览

本文概述

给定一个整数N, 编写一个程序, 如果给定数字是回文, 则返回true, 否则返回false。

例子:

Input: N = 2002 
Output: true

Input: N = 1234
Output: false
算法题:检查数字是否为回文1

方法:

解决这个问题的一个简单方法是,首先将n的数字进行逆序,然后将n的逆序与n进行比较。如果两者相同,则返回true,否则返回false。

下面是上述方法的实现:

C++

//C program to check whether a number
//is Palindrome or not.
  
#include <stdio.h>
  
/* Iterative function to reverse digits of num*/
int reverseDigits( int num)
{
     int rev_num = 0;
     while (num> 0) {
         rev_num = rev_num * 10 + num % 10;
         num = num /10;
     }
     return rev_num;
}
  
/* Function to check if n is Palindrome*/
int isPalindrome( int n)
{
  
     //get the reverse of n
     int rev_n = reverseDigits(n);
  
     //Check if rev_n and n are same or not.
     if (rev_n == n)
         return 1;
     else
         return 0;
}
  
/*Driver program to test reversDigits*/
int main()
{
     int n = 4562;
     printf ( "Is %d a Palindrome number? -> %s\n" , n, isPalindrome(n) == 1 ? "true" : "false" );
  
     n = 2002;
     printf ( "Is %d a Palindrome number? -> %s\n" , n, isPalindrome(n) == 1 ? "true" : "false" );
     return 0;
}

Java

//Java program to check whether a number
//is Palindrome or not.
  
class GFG
{
     /* Iterative function to reverse digits of num*/
     static int reverseDigits( int num)
     {
         int rev_num = 0 ;
         while (num> 0 ) {
             rev_num = rev_num * 10 + num % 10 ;
             num = num /10 ;
         }
         return rev_num;
     }
      
     /* Function to check if n is Palindrome*/
     static int isPalindrome( int n)
     {
      
         //get the reverse of n
         int rev_n = reverseDigits(n);
      
         //Check if rev_n and n are same or not.
         if (rev_n == n)
             return 1 ;
         else
             return 0 ;
     }
      
     /*Driver program to test reversDigits*/
     public static void  main(String []args)
     {
         int n = 4562 ;
         System.out.println( "Is" + n + "a Palindrome number? -> " +
             (isPalindrome(n) == 1 ? "true" : "false" ));
      
         n = 2002 ;
          
         System.out.println( "Is" + n + "a Palindrome number? -> " +
             (isPalindrome(n) == 1 ? "true" : "false" ));
  
     }
  
}
  
//This code is contributed 
//by Hritik Raj ( ihritik )

Python3

# Python3 program to check whether a 
# number is Palindrome or not. 
  
# Iterative function to reverse
# digits of num
def reverseDigits(num) : 
  
     rev_num = 0 ; 
     while (num> 0 ) :
         rev_num = rev_num * 10 + num % 10
         num = num //10
      
     return rev_num 
  
# Function to check if n is Palindrome
def isPalindrome(n) :
  
     # get the reverse of n 
     rev_n = reverseDigits(n); 
  
     # Check if rev_n and n are same or not. 
     if (rev_n = = n) :
         return 1
     else :
         return 0
  
# Driver Code
if __name__ = = "__main__" :
  
     n = 4562
      
     if isPalindrome(n) = = 1 :
         print ( "Is" , n, "a Palindrome number? ->" , True )
          
     else :
         print ( "Is" , n, "a Palindrome number? ->" , False )
  
     n = 2002
      
     if isPalindrome(n) = = 1 :
         print ( "Is" , n, "a Palindrome number? ->" , True )
          
     else :
         print ( "Is" , n, "a Palindrome number? ->" , False )
  
# This code is contributed by Ryuga

C#

//C# program to check whether a number
//is Palindrome or not.
  
using System;
class GFG
{
     /* Iterative function to reverse digits of num*/
     static int reverseDigits( int num)
     {
         int rev_num = 0;
         while (num> 0) {
             rev_num = rev_num * 10 + num % 10;
             num = num /10;
         }
         return rev_num;
     }
      
     /* Function to check if n is Palindrome*/
     static int isPalindrome( int n)
     {
      
         //get the reverse of n
         int rev_n = reverseDigits(n);
      
         //Check if rev_n and n are same or not.
         if (rev_n == n)
             return 1;
         else
             return 0;
     }
      
     /*Driver program to test reversDigits*/
     public static void  Main()
     {
         int n = 4562;
         Console.WriteLine( "Is" + n + "a Palindrome number? -> " +
             (isPalindrome(n) == 1 ? "true" : "false" ));
      
         n = 2002;
          
         Console.WriteLine( "Is" + n + "a Palindrome number? -> " +
             (isPalindrome(n) == 1 ? "true" : "false" ));
  
     }
  
}
  
//This code is contributed 
//by Hritik Raj ( ihritik )

PHP

<?php
//PHP program to check whether a number
//is Palindrome or not.
  
//Iterative function to reverse 
//digits of num
function reverseDigits( $num )
{
     $rev_num = 0;
     while ( $num> 0) 
     {
         $rev_num = $rev_num * 10 + 
                    $num % 10;
         $num = $num /10;
     }
     return $rev_num ;
}
  
//Function to check if n is Palindrome
function isPalindrome( $n )
{
  
     //get the reverse of n
     $rev_n = reverseDigits( $n );
  
     //Check if rev_n and n are same or not.
     if ( $rev_n == $n )
         return 1;
     else
         return 0;
}
  
//Driver Code
$n = 4562;
echo "Is " , $n , " a Palindrome number? ->" ;
  
if (isPalindrome( $n ) == 1)
     echo "true" ;
else
     echo "false" ;
echo "\n" ;
  
$n = 2002;
echo "Is " , $n , " a Palindrome number? ->" ;
if (isPalindrome(! $n ))
     echo "true" ;
else
     echo "false" ;
  
//This code is contributed by jit_t
?>

输出如下:

Is 4562 a Palindrome number? -> false
Is 2002 a Palindrome number? -> true

木子山

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: