Porównanie dużych liczb, operacje na stringach

0

Cześć, robię zadanie ze SPOJ https://pl.spoj.com/problems/KC015/
Na początku chciałem zrobić kod pod długoś tablicy, a potem zmienić ją, żeby patrzyła jeszcze czy wnętrze się różni.
Nie wiem co zmienić, żeby nie było błędu **Nie można zastosować operatora „>=” do argumentów operacji typu „string” lub „string”. **
Oto mój kod:

static void Main(string[] args)
        {

            string[] tab = Console.ReadLine().Split(' ');
            String1 string1 = new String1(tab[0], tab[1], tab[2]);
            if (tab[1] == "==")
            {
                if (tab[0].Length == tab[2].Length)
                {
                    Console.WriteLine("1");
                }
                else
                {
                    Console.WriteLine("0");
                }
            }
            else if (tab[1] == "!=")
            {
                if (tab[0].Length != tab[2].Length)
                {
                    Console.WriteLine("1");
                }
                else
                {
                    Console.WriteLine("0");
                }
            }
            else if (tab[1] == ">=")
            {
                if (tab[0] >= tab[2])
                {
                    Console.WriteLine("1");
                }
                else
                {
                    Console.WriteLine("0");
                }
            }
            else if (tab[1] == "<=")
            {
                if (tab[0] <= tab[2])
                {
                    Console.WriteLine("1");
                }
                else
                {
                    Console.WriteLine("0");
                }
            }
            Console.Read();

        }
        public class String1
        {
            public string A { get; set; }
            public string B { get; set; }
            public string C { get; set; }


            public String1(string a, string b, string c)
            {
                A = a;
                B = b;
                C = c;
            }

        }

Czy da się skopiować tab[1] do tablicy int?

1

Najprościej, niekoniecznie najwydajniej:

Google: C# string to int

How to convert a string to a number (C# Programming Guide)

0

Dobra, fakt. Choć teraz myślę, że i tak to nic nie da, bo int jest za mały na takie liczby.

0

W C# moim zdaniem najlepiej tak podejść:
Masz dwie liczby naturalne w postaci string. Jeżeli długość tych napisów jest różna, to do krótszego należy dopisać tyle zer na początku, aby były równe. Następie, od początku, znak po znaku porównujesz te napisy tak, jakbyś ręcznie porównywał liczby wielocyfrowe. Sprawdzasz, czy relacja między tymi liczbami odpowiada podanej relacji, to wszystko.

0
monki napisał(a):

Czy da się skopiować tab[1] do tablicy int?

Nie. Jak chcesz == albo <= przekształcić na liczbę?

Jedyny int jakiego tu potrzebujesz to indeks w tablicy porównującej po kolei cyfry danej liczby.

andrzejlisek napisał(a):

W C# moim zdaniem najlepiej tak podejść:

Masz dwie liczby naturalne w postaci string. Jeżeli długość tych napisów jest różna, to do krótszego należy dopisać tyle zer na początku, aby były równe. Następie, od początku, znak po znaku porównujesz te napisy tak, jakbyś ręcznie porównywał liczby wielocyfrowe. Sprawdzasz, czy relacja między tymi liczbami odpowiada podanej relacji, to wszystko.

Można też nie dopisywać tych zer, i po prostu porównać długość liczb.
Porównanie znak po znaku jest potrzebne tylko jeśli są równe.

0

@monki: Nie rozumiem z czym masz problem . Najpierw trzeba porównać długość a jeśli liczby mają taką samą ilość cyfr to porównujesz cyfry parami . Zaczynasz od najbardziej znaczących cyfr.
Zadanie dziecinnie proste

0

I jakoś nikomu nie pasuje to, co podał @fasadin. Ciekawe...

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