为什么有个特例判错????
查看原帖
为什么有个特例判错????
435775
DuWei123123楼主2021/6/14 11:07

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了.

2021/6/14 11:07
加载中...