Skip to content

Commit eb64381

Browse files
Merge pull request #567 from shellhub/patch-1
add isPalindrome function
2 parents 08415b0 + ff90d87 commit eb64381

File tree

1 file changed

+33
-19
lines changed

1 file changed

+33
-19
lines changed

misc/palindrome.c

Lines changed: 33 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,40 @@
1+
/**
2+
* @file
3+
* @brief Program to identify if a number is [palindrome
4+
* number](https://en.wikipedia.org/wiki/Palindrome) or not.
5+
* @see project_euler/problem_4/sol1.c
6+
*/
7+
#include <assert.h>
8+
#include <stdbool.h>
19
#include <stdio.h>
2-
int main()
3-
{
4-
int n, reversedInteger = 0, remainder, originalInteger;
510

6-
printf("Enter an integer: ");
7-
scanf("%d", &n);
11+
bool isPalindrome(int number);
812

9-
originalInteger = n;
13+
/** Driver Code */
14+
int main()
15+
{
16+
assert(isPalindrome(0));
17+
assert(isPalindrome(1));
18+
assert(isPalindrome(12321));
19+
assert(!isPalindrome(1234));
20+
return 0;
21+
}
1022

11-
// reversed integer is stored in variable
12-
while (n != 0)
23+
/**
24+
* Check given number whether is palindrome number or not
25+
* @param number number to check
26+
* @return `true` if given number is palindrome number
27+
* @return `false` if number is not a palindrome number
28+
*/
29+
bool isPalindrome(int number)
30+
{
31+
int reversedNumber = 0;
32+
int originalNumber = number;
33+
while (number != 0)
1334
{
14-
remainder = n % 10;
15-
reversedInteger = reversedInteger * 10 + remainder;
16-
n /= 10;
35+
int remainder = number % 10;
36+
reversedNumber = reversedNumber * 10 + remainder;
37+
number /= 10;
1738
}
18-
19-
// palindrome if orignalInteger and reversedInteger are equal
20-
if (originalInteger == reversedInteger)
21-
printf("%d is a palindrome.", originalInteger);
22-
else
23-
printf("%d is not a palindrome.", originalInteger);
24-
25-
return 0;
39+
return originalNumber == reversedNumber;
2640
}

0 commit comments

Comments
 (0)