Как я могу избежать переполнения в моей функции IsNumberPolyndrom - PullRequest
0 голосов
/ 31 января 2019

Я практикую некоторые c вопросы, и я хотел сделать функцию, которая проверяет, является ли данное значение палиндромом или нет, без использования мода.Но я беспокоюсь о переполнении в моей функции IsNumPalindrome.

Хотелось бы получить некоторую информацию о том, как сделать этот код лучше.

#include <stdio.h>
#include <stdlib.h>

 /*function returns mod, divider must be different than zero */

int GetMod(int number, int divider)
{

    return(number- (divider*(number/divider)));
}

/* function return 1 if palindrome 0 if not*/
int IsNumberPalindrome(int number)
{
    int saveOriginal = 0;
    int reminder = 0;
    int reversedNum = 0;

    saveOriginal = number ;
    while (0 < number)
    {
        reminder = GetMod(number, 10);
        number /= 10;
        reversedNum = reversedNum * 10 + reminder;
    }

    return(saveOriginal == reversedNum);
}

int main()
{
    int i = 0;

    i= IsNumberPalindrome(154);
    printf("Is pal for 154 %d\n", i);
    i = IsNumberPalindrome(3003);
    printf("Is pal for 3003 %d\n", i);

    return 0;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...