回文数的判断

回文数的简单快速判断

1 完成程序,验证回文 比如 输入 abcba 输出是回文

解题思路:
这里采用到一种快速判断回文数的方法,主要有两个公式需要自己尝试用个数去动手去算一算就明白了;
根据回文数本身的特点,得规律公式:
y = y * 10 + x % 10;
x /= 10;

源代码如下:

    #include 
	bool Fun(int x)  //注意返回值是bool类型 
	{
		if (x < 0 || (x % 10 == 0 && x != 0)) //如果是负数,或者个位数是0的都不是回文数,回文数要求是正整数 
        return false;
	
	int y = 0;
    
    while (x > y)  //注意,这里不用取等于号. 
    {
       y = y * 10 + x % 10;
       x /= 10;
    }
    return  x == y||x == y/10; 
	 
    }   
    
    int main()
    {
    	long int x;
    	bool xzq;
    	printf("请输入一个数: ");
    	scanf("%d",&x);
    	xzq=Fun(x);
    	if(xzq==true)  printf("数字%d是回文数",x);
    	else  printf("数字%d不是回文数!",x);
    	return 0;
	}

回文数的判断_第1张图片
回文数的判断_第2张图片

你可能感兴趣的:(初阶算法)