大佬求助,vs运行成功,洛谷编译失败
查看原帖
大佬求助,vs运行成功,洛谷编译失败
1042314
AIBEYOND楼主2023/7/22 16:34
#include <iostream>
#include <string.h>
using namespace std;
void add(char M[], int N)   //十进制以内
{
	char M1[108];
	strcpy(M1, M);
	strrev(M1);
	int c = 0;
	for (int i = 0;M1[i] != '\0' || c == 1;i++)
	{
		if (c == 1 && M1[i] == '\0')
		{
			M[i] = 1 + '0';
			M[i + 1] = '\0';
			break;
		}
		if ((M1[i] - '0') + (M[i] - '0') + c >= N)
		{
			M[i] = ((M[i] - '0') + (M1[i] - '0') - N + c) + '0';
			c = 1;
		}
		else
		{
			M[i] = ((M[i] - '0') + (M1[i] - '0') + c) + '0';
			c = 0;
		}
	}
}
void add16(char M[])  //十六进制
{
	char M1[108];
	strcpy(M1, M);
	strrev(M1);
	int c = 0;
	for (int i = 0;M1[i] != '\0' || c == 1;i++)
	{
		if (c == 1 && M1[i] == '\0')
		{
			M[i] = 1 + '0';
			M[i + 1] = '\0';
			break;
		}
		if (int(M[i]) <= 57 && int(M1[i]) <= 57)
		{
			if (((int(M[i])) - 48) + ((int(M1[i])) - 48) + c <= 9)
			{
				M[i] = char(((int(M[i])) - 48) + ((int(M1[i])) - 48) + c + 48);
				c = 0;
			}
			else if (((int(M[i])) - 48) + ((int(M1[i])) - 48) + c <= 15)
			{
				M[i] = char(((int(M[i])) - 48) + ((int(M1[i])) - 48) + c + 55);
				c = 0;
			}
			else
			{
				M[i] = char(((int(M[i])) - 48) + ((int(M1[i])) - 48) + c + 55);
				c = 1;
			}
		}
		else if (int(M1[i]) >= 65 && int(M[i]) >= 65)
		{
			if (((int(M[i])) - 55) + ((int(M1[i])) - 55) + c - 16 <= 9)
			{
				M[i] = char(((int(M[i])) - 55) + ((int(M1[i])) - 55) + c - 16 + 48);
				c = 1;
			}
			else
			{
				M[i] = char(((int(M[i])) - 55) + ((int(M1[i])) - 55) + c - 16 + 55);
				c = 1;
			}
		}
		else
		{
			if (((int(M[i])) - 48) + ((int(M1[i])) - 55) + c <= 15)
			{
				M[i] = char(((int(M[i])) - 48) + ((int(M1[i])) - 55) + c + 55);
				c = 0;
			}
			else
			{
				M[i] = char(((int(M[i])) - 48) + ((int(M1[i])) - 55) + c - 16 + 48);
				c = 1;
			}
		}
	}
}
int main()
{
	int N;
	char M[108];
	cin >> N;
	cin >> M;
	int i;
	char L[108];
	for (i = 0;i <= 29;i++)
	{
		if (N <= 10)
		{
			add(M, N);
		}
		else
		{
			add16(M);
		}
		strcpy(L, M);
		strrev(L);
		if (strcmp(L, M) == 0)
		{
			break;
		}
	}
	if (i <= 29)
	{
		cout << "STEP=" << i + 1;
	}
	else
	{
		cout << "Impossible!";
	}
	return 0;
}
2023/7/22 16:34
加载中...