fbpx

Problema #2274 – Limite – Rezolvari PBInfo

de Mihai-Alexandru

Cerința

Se dau n numere naturale. Afișați tipul de date C++ minim ca număr de octeți permite memorarea fiecărui număr. Dacă un număr încape și în tipul cu semn și în tipul fără semn, se afișează tipul cu semn.

Date de intrare

Fișierul de intrare limite.in conține numărul n, iar apoi n numere naturale, separate prin spații.

Date de ieșire

Fișierul de ieșire limite.out va conține n șiruri de caractere, pe n rânduri, reprezentând tipurile de date cerute, dintre char, unsigned char, short, unsigned short, int, unsigned int, long long, unsigned long long.

Restricții și precizări

  • 1 ≤ n ≤ 10000
  • cele n numere citite vor fi mai mici sau egale cu 18446744073709551615

Exemplu

limite.in

5
10 18446744073709551615 32767 127 65535

limite.out

char
unsigned long long
short
char
unsigned short
#include <bits/stdc++.h>
using namespace std;
ifstream cin("limite.in");
ofstream cout("limite.out");
int main()
{
    int  n;
    unsigned long long x;
    cin >> n;
    for(int i = 1 ; i <= n ; i++)
    {
        cin >> x;
        if(x <= 127) cout << "char" << endl;
        else if(x <= 255) cout << "unsigned char" << endl;
        else if(x <= 32767) cout << "short" << endl;
        else if(x <= 65535) cout << "unsigned short" << endl;
        else if(x <= 2147483647) cout << "int" << endl;
        else if(x <= 4294967295) cout << "unsigned int" << endl;
        else if(x <= 9223372036854775807) cout << "long long" << endl;
        else if(x <= 18446744073709551615) cout << "unsigned long long" << endl;
    }
    return 0;
}
Comentarii

S-ar putea sa iti placa