Эквивалентный Python-код для добавления двух целых чисел, как в C ++ - PullRequest
0 голосов
/ 28 сентября 2019

XY Итак, у меня два номера.скажем, [12,3] И я хочу сравнить 123 с 321 i, e XY и YX или [1234,4] ---> 12344 <44321 </p>

Если я напрямую пытаюсь использовать append, это недействует в питоне.C ++ код, который делает то, что я хочу ->

int Compare(string X, string Y)
{
    // first append Y at the end of X
    string XY = X.append(Y);

    // then append X at the end of Y
    string YX = Y.append(X);

    // Now see which of the two formed numbers is greater
    if (XY > YX)
    {
        return 1;
    }
    else
    {
        return 0;
    }

}

Ответы [ 2 ]

1 голос
/ 28 сентября 2019

Во-первых, в коде C ++ есть ошибка

XY=X.append(Y) также изменит X на X + Y, например, рассмотрим следующий фрагмент кода:

string X="ab", Y="cd";
string XY=X.append(Y);
cout<<"X="<<X<<", Y="<<Y<<", XY="<<XY;

output:

X=abcd, Y=cd, XY=abcd

Поскольку append сначала объединяет Y в X, а затем присваивает значение X для XY.это вызовет проблемы, когда вы вычислите YX позже.Вместо этого я предложу использовать оператор «+»:

int Compare(string X, string Y)
{
    string XY = X+Y;
    string YX = Y+X;

    if (XY > YX) return 1;
    else return 0;
}

Эквивалентный код Python3 будет

def Compare(X, Y):
    X=str(X)   # Convert to string in case integer parameters are passed (if you are
    Y=str(Y)   # sure that only string will be passed you can skip these two lines)

    XY = X+Y
    YX = Y+X

    if (XY > YX):
        return 1
    else: 
        return 0
1 голос
/ 28 сентября 2019

Вы можете объединить строки в Python, используя +.Т.е. "a" + "b" приводит к строке "ab".Чтобы преобразовать строку в число, используйте конструктор int().Т.е. int("10") выдаст число 10.

. Это должно предоставить вам достаточно информации, чтобы сформировать решение вашей проблемы.

...