C++判断回文数,while 循环

回文数定义:设n是一任意自然数。 若将n的各位数字反向排列所得自然数n1与n相等,则称n为回文数

【样例输入】121

【样例输出】121是回文数

#include 
using namespace std;
int main()
{
	int n,n1,n2,s=0;
    cin >> n;
	n1 = n;
    while (n1 >0)
    {	
		n2=n1%10;
		s += n2;
		//cout << n2;
		s  *= 10;
		n1 /= 10;
		
	} 
	s /= 10;
	if (n == s)
		cout << n << "是回文数";
	else
		cout << n << "不是回文数";
		return 0;
}

 用n1代替要判断的数来进行判断回文数的操作,以免后面要用n时发现n已经变换数值了。

每次循环后n1就少一个个位数字(比如124变成了12)

第一次循环的n2表示这个数的个位数字

s表示数值的倒序数的大小

为了得到这个数值的各个位上的数字,直到n1<0才结束循环

这时的s会比需要的倒序数大10倍,判断的时候除以10回来就好啦

 

你可能感兴趣的:(c++,c语言)