6980358432985反转后答案明明就是5892348530896
我把样例下载下来后,运行一下,答案就是正确的,却判错.......
思路是利用输入流锁定符号.
代码如下:
#include <iostream>
#include <cstdio>
using namespace std;
unsigned long long z(long long x)
{
long long sum = 0;
while (x)
{
sum = sum * 10 + x % 10;
x = x / 10;
}
return sum;
}
int main()
{
unsigned long long tmp = 0, a = 0, b = 0, hundred = 0, one = 0;
char str = 0;
//a,b代表整数除法或者小数的整数部分和小数部分.
//hundred代表百分数
//one代表只有一个整数
//char 代表运算符
scanf("%llu%c", &tmp, &str);
if (str == '.')
{
a = tmp;
scanf("%llu", &b);
a = z(a);
b = z(b);
printf("%llu.%llu\n", a, b);
}
else if (str == '/')
{
a = tmp;
scanf("%llu", &b);
a = z(a);
b = z(b);
printf("%llu/%llu\n", a, b);
}
else if(str == '%')
{
tmp = z(tmp);
printf("%llu%c\n", tmp, '%');
}
else //只有一个整数
{
one = tmp;
one = z(one);
printf("%llu\n", one);
}
return 0;
}
哪位大佬看看为啥,和我之前做的一个题一样,搞了一下午,洛谷就是RE,结构一模一样的题在牛客上,AC了.