测试的应该是对的为啥20分

P1307 [NOIP2011 普及组] 数字反转

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]


|