c - How can I avoid overflow in my IsNumberPolyndrom function
问题描述
I'm practicing some c questions, and I wanted to make a function that checks if a giving value is a palindrome or not without using mod . But- I am worried about overflow in my function IsNumPalindrome.
Would love to get some input on how to make this code better.
#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;
}
解决方案
推荐阅读
- python - 如何在运行时从 mp4 或 mp3 文件中获取文本
- r - 使用 R 在 crontab 中更新 for 循环的索引
- java - java中的闰年HW初学者
- node.js - 在 nodejs 上使用 mongodb 驱动程序时,MongoClient 的连接没有被关闭
- azure-data-factory - 无法从 ADF 复制活动成功调用逻辑应用程序
- mysql - 存储过程不应该返回任何值(MySQL)
- python - 在 get_queryset 中添加新的上下文变量
- java - jshell错误:设置布尔方法时缺少返回语句
- c# - 如何使用 C# 过滤 CSV
- python - 如何在子类中使用父类的属性