Porównywanie dużych liczb

0

Witam , mam problem z zadaniem ze spoj'a. Wszystko niby mi się zgadza, jednak podczas zgłaszania zostaje przekroczony limit czasu.
Czy ktoś może pomóc ?? Link do zadania - http://pl.spoj.com/problems/KC015/ Z góry dzięki.
Oto kod:
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
int x=1,a,b;
char znak1,znak2;
do
{
cin>>a>>znak1>>znak2>>b;
if(znak1 == '=' && znak2 == '=')
{
if(a == b)
cout<<"1"<<endl;
else
cout<<"0"<<endl;
}
else if(znak1 == '!' && znak2 == '=')
{
if(a != b)
cout<<"1"<<endl;
else
cout<<"0"<<endl;
}
else if(znak1 == '<' && znak2 == '=')
{
if(a <= b)
cout<<"1"<<endl;
else
cout<<"0"<<endl;
}
else if(znak1 == '>' && znak2 == '=')
{
if(a >= b)
cout<<"1"<<endl;
else
cout<<"0"<<endl;
}

}while (x=1);

}

0

Kod na pastebin - http://pastebin.com/YEEpfhBv

0

Z tego co pamiętam to trzeba było liczby wczytać do stringów.

0

A czemu ten sposób jest zły? W treści zadania nie jest to sprecyzowane.

0

Przyjmujemy, że żadna z liczb nie ma więcej niż 1000 cyfr.
I zamierzasz 1000 cyfrową liczbę w int'a wsadzić ?

0

Użyć innego typu, czy jest jakiś inny sposób na poradzenie sobie z tym problemem?

1

Wsadzając liczbe do stringa nie musisz jej porównywać całej, lecz często wystarczy porównać pierwsze kilka liczb czasem nawet pierwsza wystarczy ale także ilość znaków można porównać. Jak kiedyś się bawiłem spojem, to porównywałem ilość cyfr, jeśli liczba ich jest równa, to po cyfrze porównywałem aż do znalezienia 2 róznych. Bo mając 2 liczby 5 cyfrowe i gdy pierwsza cyfra jest 5 i 6 to ta druga liczba jest nie jest na pewno mniejsza ani równa tej pierwszej.

0

Tylko, że jeszcze nie przerobiłem stringów i próbowałem w ten sposób, ale niestety chyba się nie da ;/

0
Krzywy Szczur napisał(a):

Tylko, że jeszcze nie przerobiłem stringów i próbowałem w ten sposób, ale niestety chyba się nie da ;/

To wróć do kursu, a za programowanie bierz się jak już opanujesz podstawowe typy danych.

0

A kto cię zmusza do użycia string'ów?

char a[10001],op[3],b[10001];
cin>>a>>op>>b;
0

A w jaki sposób mogę porównać liczbę cyfr w liczbach znajdujących się w tablicach? To będzie pierwsze sprawdzenie, w przypadku, gdy będą miały taką samą liczbę cyfr, będę porównywał pierwsze 4 elementy tablicy , tzn a[0]=b[0] itd.

0
size_t lena=strlen(a);

1 użytkowników online, w tym zalogowanych: 0, gości: 1