小初初i @ 2017-10-13 23:23:40
将每一位单独拆分,在分别乘上10^n(第一位变最后一位,……)
#include<iostream>
#include<cmath>//用pow函数
using namespace std;
int main()
{
int d=0,e=0;
int k[100],c=0;//k用来储存num的每一位,
//c为k数组内的数字,在下面存数时用到
long long int num,numm=0;//numm在后面储存翻转数字
int x=10,y=0;//在下面用pow函数求输入数字的位数
cin>>num;
long long int nummm=num;//最后用来添负号
if(num<0)
num/=-1;//数字小于零则变为正
while(num>pow(x,y))
{
pow(x,y++);//y代表数字的位数
}
while(num>0)
{
k[c]=num%10,num/=10,++c;//将数字的每一位模上10得到每一位的数字
}
double f=pow(10,d);
c-=1;//c-=1否则会溢出
while(c>=0&&d<y)
{
numm+=k[c]*f,c--,f=pow(10,++d);//在这里反转数字
}
if(nummm<0)
numm/=-1;//判号
cout<<numm;
return 0;
}
by Lolierl @ 2017-10-14 07:34:25
思路不错