NOJ 005 找幸运数
1.将输入整数转换为字符串,在相应位置比较
#include <iostream>
#include <string>
using namespace std;
int num;//存放输入数据
bool flag = true; //表示是否对称
cin>>num;
string str = to_string(num);
int size = str.size();
const char* cStr = str.c_str();
for(int i=0,j = size - 1;i!=j;i++,j--)
{
if(cStr[i] != cStr[j])
{
flag = false;
break;
}
}
if(flag)
cout<<"yes"<<endl;
else
cout<<"no"<<endl;
2.对整数进行处理,直接将整数逆序
例如:输入1234,逆序后为4321。re_num表示逆序数,num表示输入数。
逆序数 = 0
逆序数 = 逆序数*10 + 末位数
输入数 = 输入数/10
re_num = 0
re_num = 0*10 + 4 = 4
num = 1234 / 10 = 123
re_num = 4
re_num = 4*10 + 3 = 43
num = 123 / 10 = 12
re_num = 43
re_num = 43*10 + 2 = 432
num = 12 / 10 = 1
re_num = 432
re_num = 432*10 + 1 = 4321
num = 1 / 10 = 0
num为0是结束标志,re_num为转换后结果。此方法对于数字的位数没有限制。
#include <iostream>
using namespace std;
int main()
{
int num; int re_num = 0;int temp;
cin>>num;
temp = num;
while(temp != 0)
{
re_num = re_num*10 + temp % 10;
temp = temp / 10;
}
if(num == re_num)
cout<<"yes"<<endl;
else
cout<<"no"<<endl;
return 0;
}