如何避免IsNumberPolyndrom函数溢出

时间:2019-01-31 19:25:46

标签: c overflow

我正在练习一些c问题,并且我想创建一个函数来检查给定值是否是回文,而无需使用mod。 但是-我担心函数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;
}

0 个答案:

没有答案