Skip to content

Commit

Permalink
add isPalindrome function
Browse files Browse the repository at this point in the history
  • Loading branch information
realDuYuanChao committed Jul 14, 2020
1 parent 08415b0 commit ff90d87
Showing 1 changed file with 33 additions and 19 deletions.
52 changes: 33 additions & 19 deletions misc/palindrome.c
Original file line number Diff line number Diff line change
@@ -1,26 +1,40 @@
/**
* @file
* @brief Program to identify if a number is [palindrome
* number](https://en.wikipedia.org/wiki/Palindrome) or not.
* @see project_euler/problem_4/sol1.c
*/
#include <assert.h>
#include <stdbool.h>
#include <stdio.h>
int main()
{
int n, reversedInteger = 0, remainder, originalInteger;

printf("Enter an integer: ");
scanf("%d", &n);
bool isPalindrome(int number);

originalInteger = n;
/** Driver Code */
int main()
{
assert(isPalindrome(0));
assert(isPalindrome(1));
assert(isPalindrome(12321));
assert(!isPalindrome(1234));
return 0;
}

// reversed integer is stored in variable
while (n != 0)
/**
* Check given number whether is palindrome number or not
* @param number number to check
* @return `true` if given number is palindrome number
* @return `false` if number is not a palindrome number
*/
bool isPalindrome(int number)
{
int reversedNumber = 0;
int originalNumber = number;
while (number != 0)
{
remainder = n % 10;
reversedInteger = reversedInteger * 10 + remainder;
n /= 10;
int remainder = number % 10;
reversedNumber = reversedNumber * 10 + remainder;
number /= 10;
}

// palindrome if orignalInteger and reversedInteger are equal
if (originalInteger == reversedInteger)
printf("%d is a palindrome.", originalInteger);
else
printf("%d is not a palindrome.", originalInteger);

return 0;
return originalNumber == reversedNumber;
}

0 comments on commit ff90d87

Please sign in to comment.