在本地输入后马上就输出了“return value 3221225477”这种乱码,可能是炸了内存,但交到洛谷全是TLE
#include <bits/stdc++.h>
using namespace std;
int main()
{
string str;
char ch;
cin >> str;
str += '/';
int str_wei = 0;
int dengyu;
while (str[str_wei] != '/')
str_wei++;
char kind[str_wei];
char ki;
for (int i = 0; i < str_wei; i++)
{
if (str[i] == '-')
ki = 1;
else if (str[i] == '+')
ki = 2;
else if (str[i] == '=')
{
ki = 3;
dengyu = i;
}
else if (str[i] >= '0' && str[i] <= '9')
ki = 4;
else
{
ch = str[i];
ki = 5;
}
//cout << ki << endl;
kind[i] = ki;
}
//for (long long i = 0; i < str_wei; i++)
// cout << kind[i];
//cout << endl << str_wei << " " << ch << " " << dengyu << endl;
short n, x;
long long N, X;
n = x = 0;
unsigned char N_m = 0;
unsigned char N_wei[200];
char N_N[200][200];
long long N_n = 0;
long long X_n = 0;
char zhfu_dengyu, zhfu_zhfu;
for (int i = 0; i < str_wei; i++)
{
if (i < dengyu)
zhfu_dengyu = 1;
else
zhfu_dengyu = -1;
if (str[i] != '-')
zhfu_dengyu = 1;
else
zhfu_dengyu = -1;
N_wei[N_m] = 0;
while (kind[i] == 4)
{
N_N[N_m][N_wei[N_m]] = str[i] - '0';
N_wei[N_m]++;
i++;
}
N_wei[N_m]--;
if (kind[i] == 5)
{
for (int wei = N_wei[N_m]; wei >= 0; wei--)
X_n += zhfu_dengyu * zhfu_zhfu * N_N[N_m][N_wei[N_m] - wei] * pow(10, wei);
}
else
{
for (int wei = N_wei[N_m]; wei >= 0; wei--)
N_n -= zhfu_dengyu * zhfu_zhfu * N_N[N_m][N_wei[N_m] - wei] * pow(10, wei);
}
i--;
N_m++;
}
cout << fixed << setprecision(3) << ch << "=" << N_n / 1.0 / X_n << endl;
return 0;
}