简单模拟。

CODE:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
using namespace std;

const int SIZE = 101;
char str[SIZE];
char save[SIZE];
int flag;


void reverse(char *str)
{
    int i;
    int len = strlen(str);
    for(i = 0; i < len/2; i++)
    {
        char tmp = str[len-i-1];
        str[len-i-1] = str[i];
        str[i] = tmp;
    }
    return ;
}



void solve(char *str)
{
    int i;
    int len = strlen(str), cnt = 0;
    for(i = len-1; str[i] == '0' && i >= 0; i--, cnt++);
    if(!cnt)
    {
        reverse(str);
    }
    else
    {
        str[len-cnt] = '\0';
        reverse(str);
    }
    if(!flag)    printf("-");
    printf("%s", str);
    for(i = 0; i < cnt; i++) printf("0");
    printf("\n");
}



int main()
{
    int T, n;
    scanf("%d", &T);
    getchar();
    while(T--)
    {
        flag = 1;
        scanf("%d", &n);
        if(n < 0)
        {
            flag = 0;
            n = abs(n);
        }
        sprintf(str, "%d", n);
        solve(str);
    }
    return 0;
}

 

 

posted on 2012-08-21 14:49  有间博客  阅读(171)  评论(0编辑  收藏  举报