http://acm.hdu.edu.cn/showproblem.php?pid=1266
题目要求:输入一个整数,要求逆序这个整数。但有条件:
1、如果是个负数,则符号位保留,其他逆序;
2、如果末位为0或者是连续有0,则保留这些0,其他的逆序输出;
虽然题目要求是输入一个整数,但是按照题目求做起来的话很显然要用字符串处理。逆序输出的话,只要先输出后面第一个不为0的数即可,再依次向前递减,依次输出。
#include<stdio.h>
#include<string.h>
#define MAXN 10000
char a[MAXN];
int main()
{
int t, n, i, len;
int k;
scanf("%d", &t);
while( t-- )
{
scanf("%s", &a);
len = strlen(a);
for(k = len - 1; k >= 0; k--)
{
if(a[k] != '0')
break;
}
if(a[0] == '-')
{
printf("-");
for(i = k; i >= 1; i--)
printf("%c", a[i]);
for(i = k + 1; i < len; i++)
printf("0");
}
else
{
for(i = k; i >= 0; i--)
printf("%c", a[i]);
for(i = k + 1; i < len; i++)
printf("0");
}
printf("\n");
}
return 0;
}