forked from TheAlgorithms/C
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
08415b0
commit ff90d87
Showing
1 changed file
with
33 additions
and
19 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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; | ||
} |