hdu 4544反逆の明ちゃん--デジタル反転とhdu 2074かご(水題)


水题:数字の反転、123は321になって、复数の时の前线の0は取り除いて例えば-100は-1になります
#include 
using namespace std;

#define N 10000

int Reverse(int inNum)
{
	int sum = 0;
	if (inNum < 10)
	{
		return inNum;
	}
	while(inNum%10 == 0) inNum /= 10;
	while(inNum)
	{
		sum = sum * 10 + inNum % 10;
		inNum /= 10;
	}

	return sum;

}

int main()
{
	int a, b, t;
	int c, d;
	scanf("%d", &t);
	while(t--)
	{	

		scanf("%d %d", &a, &b);
		c = (a + b) / 2;
		d = (a - b) / 2;

		if (c < 0)
		{
			c = Reverse(-c);
			c *= -1;
		}
		else
		{
			c = Reverse(c);
		}

		if (d < 0)
		{
			d = Reverse(-d);
			d *= -1;
		}
		else
		{
			d = Reverse(d);
		}

		printf("%d %d
", c + d, c - d); } return 0; }

hdu 2074かご
注意:最後の使用例を除いて、各使用例の後ろに空白の行が付いています.
 
#include 
using namespace std;

#define N 80

char graph[N][N];
int main()
{
    int n, m;
    int i, j, p,q, k;
    char A, B;
	int newline = 0;
    while(scanf("%d %c %c", &n, &A, &B) != EOF)
    {
		if (newline++)
		{
			printf("
"); } if (n == 1) { printf("%c
", A); continue; } m = (n + 1) / 2; if (m % 2 != 0) { char tmp = A; A = B; B = tmp; } for (i = 0;i < m; i++) { if((i % 2) == 0) { k = n - ( 2 * i); for (p = i, q = 0;q < k; ++p, ++q) { graph[i][p] = graph[n - i-1][p] = B; } for (p = i, q =0; q < k; ++p, ++q) { graph[p][i] = graph[p][n - i - 1] = B; } } else { k = n - ( 2 * i ); for (p = i, q = 0;q < k; ++p, ++q) { graph[i][p] = graph[n - i - 1][p] = A; } for (p = i, q = 0;q < k; ++p, ++q) { graph[p][i] = graph[p][n - i - 1] = A; } } } graph[0][0] = ' '; graph[0][n - 1] = ' '; graph[n - 1][0] = ' '; graph[n - 1][n - 1] = ' '; for (i = 0; i < n; ++i) { for (j = 0; j < n; ++j) { printf("%c", graph[i][j]); } printf("
"); } } return 0; }