liaopifan @ 2016-02-15 14:11:57
/* P1307 数字翻转
给定一个整数,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,
即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零(参见样例2)。
*/
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
int num, num2,i = 0;
cin >> num ;
num2 = num;
while(num2)
{
num2 = num2 / 10;
i++;
}
int *a=new int[i];
int i2 = i;
for(int k=0; k<i2; k++)
{
a[k] = num%(int)(pow(10.0,i))/pow(10.0, i-1);
i--;
}
int sum = 0;
for(;i2>0;i2--)
{
sum = sum + a[i2-1] * pow(10.0,i2-1);
}
cout << sum << endl;
delete[] a;
return 0;
}
by liaopifan @ 2016-02-15 14:12:32
我用动态数组做的
by kongksora @ 2016-02-15 20:08:01
[codec]
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
long long a,s=1,o,p=1;
cin>>a;
while(abs(a))
{
o=abs(a%10);
if(a<0&&s==1)cout<<"-";
if(o==0&&p==1);
else{cout<<o;p=2;}
a/=10;s++;
}
}
[/codec] [ color=yello]
如此简短
[/color ]
by kongksora @ 2016-02-15 20:08:34
[color=red]如此简短[/color]