112.c

来自「平时acm训练时ac的源代码」· C语言 代码 · 共 161 行

C
161
字号
/*
112. a^b-b^a 
Accepted 66 ms 114 kb 
*/

#include <stdio.h>

int main()
{
	long A[25], B[25], C[25];
	char c;
	int i, ai, bi, j, k;
	for (i=0; i<24; i++)
	{
		A[i]=0;
		B[i]=0;
	}
	scanf("%d %d", &ai, &bi);
	for (A[24]=ai, i=1; i<bi; i++)
	{
		for (k=0; k<25; k++)
		{
			C[k] = A[k];
		}
		for (k=1; k<ai; k++)
		{
			A[0] = A[0]+C[0];
			for (j=1; j<25; j++)
			{
				A[j]=A[j]+C[j];
				if (A[j]>99999999)
				{
					A[j-1] = A[j-1]+1;
					A[j] = A[j]-100000000;
				}
			}
		}
	}
	for (B[24]=bi, i=1; i<ai; i++)
	{
		for (k=0; k<25; k++)
		{
			C[k] = B[k];
		}
		for (k=1; k<bi; k++)
		{
			B[0] = B[0]+C[0];
			for (j=1; j<25; j++)
			{
				B[j]=B[j]+C[j];
				if (B[j]>99999999)
				{
					B[j-1] = B[j-1]+1;
					B[j] = B[j]-100000000;
				}
			}
		}
	}
	for (i=0; i<25; i++)
	{
		if (A[i]>B[i])
		{
			c=1;
			break;
		}
		else if (B[i]>A[i])
		{
			c=0;
			break;
		}
		else if (24==i)
		{
			c=1;
			break;
		}
	}
	if (1==c)
	{
		for (i=0; A[i]==0;)
		{
			i++;
		}
		for (j=24; j>=i; j--)
		{
			A[j] = A[j] - B[j];
			if (A[j]<0)
			{
				A[j] = A[j]+100000000;
				for (k=j-1; 0==A[k]; k--)
				{
					A[k] = A[k]+99999999;
				}
				A[k] = A[k]-1;
			}
		}
	}
	else
	{
		for (i=0; B[i]==0; i++)
		{
		}
		for (j=24; j>=i; j--)
		{
			A[j] = B[j] - A[j];
			if (A[j]<0)
			{
				A[j] = A[j]+100000000;
				for (k=j-1; 0==B[k]; k--)
				{
					B[k] = B[k]+99999999;
				}
				B[k] = B[k]-1;
			}
		}
	}
	if (0==c)
	{
		printf("-");
	}
	for (i=0; i<25; i++)
	{
		if (0!=A[i] || 24==i)
		{
			printf("%ld", A[i]);
			for (j=i+1; j<25; j++)
			{
				if (A[j]<10)
				{
					printf("0000000");
				}
				else if (A[j]<100)
				{
					printf("000000");
				}
				else if (A[j]<1000)
				{
					printf("00000");
				}
				else if (A[j]<10000)
				{
					printf("0000");
				}
				else if (A[j]<100000)
				{
					printf("000");
				}
				else if (A[j]<1000000)
				{
					printf("00");
				}
				else if (A[j]<10000000)
				{
					printf("0");
				}
				printf("%ld", A[j]);
			}
			break;
		}
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?