逆序数
题目描述
给定一个数n,将这个数的各位顺序颠倒,称为逆序数m。 例如1234的逆序数是4321。
输入一个数n(0<n<1000000000),已知输入开头不包含多余的0。
如果m是n的k倍(k为整数),那么输出n*k=m。 如果m不是n的整数倍,那么输出n和n的逆序数。
样例输入
1234
1089
23200
样例输出
1234 4321
1089*9=9801
23200 00232
#include<iostream>
using namespace std;
void main()
{
int num;
while(cin>>num)
{
bool flag=true;
int beginzero=0;
int temp;
int input=num;
int reverse=0;
while(num>0)
{
temp=num%10;
if(temp==0&&flag) beginzero++;
else flag=false;
reverse=reverse*10+temp;
num/=10;
}
if(reverse%input==0)
{
cout<<input<<"*"<<reverse/input<<"=";
}
else cout<<input<<" ";
if(beginzero!=0)
{
while(beginzero>0)
{
cout<<"0";
beginzero--;
}
}
cout<<reverse<<endl;
}
}
根据输入范围,int就够用,就是要处理一下逆序数0开头的情况。