PAT Grade A-Analog Type-1065 A + B y C (64 bits) Ideas para la resolución de problemas

1065 A + B y C (64 bits) (20 分)

Inserte la descripción de la imagen aquí

Ideas

Comprenda los detalles, el rango de largo es [- 2 63, 2 63) [-2 ^ {63}, 2 ^ {63})[ - 26 3 ,26 3 ), pero el rango dado en el título es[- 2 63, 2 63] [-2 ^ {63}, 2 ^ {63}][ - 26 3 ,26 3 ], si los datos de prueba de la pregunta se utilizan para2 63 2 ^ {63}26 3 es utilizar el algoritmo de suma de enteros grandes, que es más problemático, pero afortunadamente no lo es.

Por lo tanto, la idea de esta pregunta es utilizar el tipo long long para discutir los fuera de límites.

Código

#include <bits/stdc++.h>
using namespace std;

int main()
{
    
    
    int n,i,j;
    long long a,b,c;
    scanf("%d",&n);
    for (i=0;i<n;i++)
    {
    
    
        scanf("%lld%lld%lld",&a,&b,&c);  

        long long res  = a+b;
        if (a>0 && b>0 && res <= 0 )
            printf("Case #%d: true\n",i+1);
        else if (a<0 && b<0 && res >= 0 )
            printf("Case #%d: false\n",i+1);
        else if(res > c)
            printf("Case #%d: true\n",i+1);
        else
            printf("Case #%d: false\n",i+1);

    }
}

Supongo que te gusta

Origin blog.csdn.net/weixin_43999137/article/details/114004849
Recomendado
Clasificación