c语言判断,回文数判断c++语言
Yyds干货库存
目录
前情提要。
科目
代码实现
代码思维
操作码
之前随着接触的不断,对回文的判断越来越严谨。
题目的回文数是正确顺序(从左到右)和相反顺序(从右到左)相同的整数。
求一个数据,如果是回文整数,返回真,否则返回假。
实现代码思想,将待判断的数据传入变量x。
然后通过条件判断过滤返回。
判断“x是负数”还是“x能被10整除”、“x不为0”,匹配则返回false。
连续循环下面的循环体(为了逆序存储变量A中X的值,把X的单个数乘以10的倍数,加到变量A中)
a=a * 10 x;
x=x/10;例如:x=121,
a=0 * 10 121=1;x=x/10=12;相同
a=1 * 10 12=10 2=12;x=x/10=1;相同
这时,A已经有了x(x是奇数)的值的一半多位数,或者x的一半(x是偶数)。
当我们判断回文时,
(X是奇数)去掉中值,a/10==x,a/10会去掉A多出来的数字,和X比较。
(x是偶数)不需要去掉数值的中值,直接a==x=x。
这两个条件不是或相关,只要其中一个满足。
代码bool isPalindrome(int x){
int a=0;
//特殊情况10,100
如果(x 0x==0 x!=0)返回false
//防止输入123456789,太多值,A超过int类型
while(一个x)
{
a=a * 10 x;
x=x/10;
}
//当输入是个位数时,也是回文当输入是奇数时,去掉中值。
返回a==x a/10==x;
}
在回文判断过程中
(1)你会遇到能被10整除的值,比如10,110,150,100等。当遇到这样一个以0结尾的值“a=a * 10x”时,这行代码无法将0*10的结尾放在倒数的最底部。
(2)你会遇到负数,比如-1,-121等。遇到这样的值,显摆不是回文,直接假。
(3)你会遇到奇数和偶数。根据不同的代码,你需要不同的注意。
(4)当输入值过大时,比如123456789,这段代码会读取输入值的一半,与另一半进行比较,解决这个问题。
爱菠萝的。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。