回文数
  4jzk2Z0RyhMg 2023年12月22日 56 0

给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。

回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。

  • 例如,121 是回文,而 123 不是。
bool isPalindrome(int x) {
  if(x<0)
  return false;
  long int a=x,b=0L;    //长整形避免溢出
  while (a!=0){        
  b=b*10+a%10;       //将每一位的数字依次反转
  a=a/10;           //依次求出个、十、百位上的数字
  }
  if (x==b)
  return true;
  else
  return false;
}

知识点:

  • 基本类型整形类型

基本整型int:分配2个字节或4个字节,范围是-231到231-1

短整型short int:分配4个字节,范围是-32768——32767

长整型long int:分配4个字节,范围是-263到263-1


  • 溢出

原因:整型数字反转后可能会溢出,因为反转过程中,数字的数值可能超过了整型数字的最大值或最小值。例如,对于一个有符号的32位整数(int),它的最大值是2147483647,最小值是-2147483648。如果一个有符号的32位整数的值被反转后,其数值可能会超过这个范围,从而导致溢出。

方法:

  1. 如果必须反转超出数据类型范围的数值,可以考虑使用更大的数据类型(如long、long long等)。
  2. C语言中的<math.h>库就提供了一些函数(如exp、powsqr、fscalbn、scalbln)来处理可能出现的溢出问题。


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年12月22日 0

暂无评论

推荐阅读
4jzk2Z0RyhMg